Создать Класс: Цвет (модель 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. Вот мой код
Листинг программы
  1. using System;
  2. namespace ColorRGB
  3. {
  4. class Program
  5. {
  6. static void Main(string[] args)
  7. {
  8. double red, green, blue, cyan, magenta, yellow;
  9. Console.WriteLine("Введите составляющие цвета в модели RGB: ");
  10. Console.Write("Red = ");
  11. red = Convert.ToDouble(Console.ReadLine());
  12. Console.Write("Green = ");
  13. green = Convert.ToDouble(Console.ReadLine());
  14. Console.Write("Blue = ");
  15. blue = Convert.ToDouble(Console.ReadLine());
  16. var color1 = ColorRGB.ColorRGB_RGBModel(red, green, blue);
  17. Console.WriteLine("Цвет rgb ({0}, {1}, {2})", color1.Red, color1.Green, color1.Blue);
  18. //Console.WriteLine("Введите составляющие цвета в модели CMY: ");
  19. //Console.Write("Cyan = ");
  20. //cyan = Convert.ToDouble(Console.ReadLine());
  21. //Console.Write("Magenta = ");
  22. //magenta = Convert.ToDouble(Console.ReadLine());
  23. //Console.Write("Yellow = ");
  24. //yellow = Convert.ToDouble(Console.ReadLine());
  25. //var color2 = ColorRGB.ColorRGB_CMYModel(cyan, magenta, yellow);
  26. //Console.WriteLine("Цвет cmy ({0}, {1}, {2})", color1.Cyan, color1.Magenta, color1.Yellow);
  27. Console.ReadKey();
  28. }
  29. }
  30. public class ColorRGB
  31. {
  32. private ColorRGB(double _red, double _green, double _blue)
  33. {
  34. Red = _red;
  35. Green = _green;
  36. Blue = _blue;
  37. }
  38. public static ColorRGB ColorRGB_RGBModel(double _red, double _green, double _blue)
  39. {
  40. return new ColorRGB(_red, _green, _blue);
  41. }
  42. public static ColorRGB ColorRGB_CMYModel(double _cyan, double _magenta, double _yellow)
  43. {
  44. var _red = 1 - _cyan;
  45. var _green = 1 - _magenta;
  46. var _blue = 1 - _yellow;
  47. return new ColorRGB(_red, _green, _blue);
  48. }
  49. public double Red {
  50. get { return red; }
  51. private set { red = red < 0 ? 0 : (red > 1 ? 1 : value); }
  52. }
  53. public double Green
  54. {
  55. get { return green; }
  56. private set { green = green < 0 ? 0 : (green > 1 ? 1 : value); }
  57. }
  58. public double Blue
  59. {
  60. get { return blue; }
  61. private set { blue = blue < 0 ? 0 : (blue > 1 ? 1 : value); }
  62. }
  63. public double Cyan
  64. {
  65. get { return cyan; }
  66. private set { cyan = cyan < 0 ? 0 : (cyan > 1 ? 1 : value); }
  67. }
  68. public double Magenta
  69. {
  70. get { return magenta; }
  71. private set { magenta = magenta < 0 ? 0 : (magenta > 1 ? 1 : value); }
  72. }
  73. public double Yellow
  74. {
  75. get { return yellow; }
  76. private set { yellow = yellow < 0 ? 0 : (yellow > 1 ? 1 : value); }
  77. }
  78. private double red;
  79. private double green;
  80. private double blue;
  81. private double cyan;
  82. private double magenta;
  83. private double yellow;
  84. }
  85. }
Не могу понять, почему у меня не срабатывают проверки red = red < 0 ? 0 : (red > 1 ? 1 : value); и остальные, если я задаю значения вне диапазона [0, 1], они и полям и присваиваются?

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

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

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


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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут