Создать Класс: Цвет (модель RGB) - C#

Узнай цену своей работы

Формулировка задачи:

По заданию нужно создать класса. представляющий цвет в модели rgb Класс: Цвет (модель RGB) Состояние (поля): красная, зеленая и синяя составляющие (значения — вещественные числа из промежутка [0; 1]) Методы конструирования: создание цвета в модели RGB, создание цвета в модели CMY Свойства: красная, зеленая, синяя, cyan, magenta, yellow составляющие Операции: сложение и вычитание Примечание: красная, зеленая и синяя составляющие цвета, заданного в модели RGB, и cyan, magenta, yellow составляющие этого же цвета в модели CMY связаны соотношениями: cyan = 1 – red; magenta = 1 – green; yellow = 1 – blue. Вот мой код
using System;
 
namespace ColorRGB
{
    class Program
    {
        static void Main(string[] args)
        {
            double red, green, blue, cyan, magenta, yellow;
 
            Console.WriteLine("Введите составляющие цвета в модели RGB: ");
            Console.Write("Red = ");
            red = Convert.ToDouble(Console.ReadLine());
            Console.Write("Green = ");
            green = Convert.ToDouble(Console.ReadLine());
            Console.Write("Blue = ");
            blue = Convert.ToDouble(Console.ReadLine());
            var color1 = ColorRGB.ColorRGB_RGBModel(red, green, blue);
            Console.WriteLine("Цвет rgb ({0}, {1}, {2})", color1.Red, color1.Green, color1.Blue);
 
            //Console.WriteLine("Введите составляющие цвета в модели CMY: ");
            //Console.Write("Cyan = ");
            //cyan = Convert.ToDouble(Console.ReadLine());
            //Console.Write("Magenta = ");
            //magenta = Convert.ToDouble(Console.ReadLine());
            //Console.Write("Yellow = ");
            //yellow = Convert.ToDouble(Console.ReadLine());
            //var color2 = ColorRGB.ColorRGB_CMYModel(cyan, magenta, yellow);
            //Console.WriteLine("Цвет cmy ({0}, {1}, {2})", color1.Cyan, color1.Magenta, color1.Yellow);
            
            Console.ReadKey();
        }
    }
 
    public class ColorRGB
    {
        private ColorRGB(double _red, double _green, double _blue)
        {
            Red = _red;
            Green = _green;
            Blue = _blue;
        }
 
        public static ColorRGB ColorRGB_RGBModel(double _red, double _green, double _blue)
        {
            return new ColorRGB(_red, _green, _blue);
        }
 
        public static ColorRGB ColorRGB_CMYModel(double _cyan, double _magenta, double _yellow)
        {
            var _red = 1 - _cyan;
            var _green = 1 - _magenta;
            var _blue = 1 - _yellow;
            return new ColorRGB(_red, _green, _blue);
        }
        
        public double Red {
            get { return red; }
            private set { red = red < 0 ? 0 : (red > 1 ? 1 : value); }
        }
        public double Green
        {
            get { return green; }
            private set { green = green < 0 ? 0 : (green > 1 ? 1 : value); }
        }
        public double Blue
        {
            get { return blue; }
            private set { blue = blue < 0 ? 0 : (blue > 1 ? 1 : value); }
        }
        public double Cyan
        {
            get { return cyan; }
            private set { cyan = cyan < 0 ? 0 : (cyan > 1 ? 1 : value); }
        }
        public double Magenta
        {
            get { return magenta; }
            private set { magenta = magenta < 0 ? 0 : (magenta > 1 ? 1 : value); }
        }
        public double Yellow
        {
            get { return yellow; }
            private set { yellow = yellow < 0 ? 0 : (yellow > 1 ? 1 : value); }
        }
 
        private double red;
        private double green;
        private double blue;
        private double cyan;
        private double magenta;
        private double yellow;
    }
}
Не могу понять, почему у меня не срабатывают проверки red = red < 0 ? 0 : (red > 1 ? 1 : value); и остальные, если я задаю значения вне диапазона [0, 1], они и полям и присваиваются?

Решение задачи: «Создать Класс: Цвет (модель RGB)»

textual
Листинг программы
            red = red < 0 ? 0 : (red= red > 1 ? 1 : value);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4 из 5