Создать Класс: Цвет (модель 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.
Вот мой код
Не могу понять, почему у меня не срабатывают проверки red = red < 0 ? 0 : (red > 1 ? 1 : value); и остальные,
если я задаю значения вне диапазона [0, 1], они и полям и присваиваются?
Листинг программы
- 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;
- }
- }
Решение задачи: «Создать Класс: Цвет (модель RGB)»
textual
Листинг программы
- red = red < 0 ? 0 : (red= red > 1 ? 1 : value);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д