структура для хранения цвета С++

411
15 января 2017, 16:40

Разработать структуру для хранения цвета (компоненты Red, Green, Blue).

Предусмотреть возможность формирования цвета из отдельных компонентов, получение любой компоненты, увеличение/уменьшение яркости всех компонент, увеличение/уменьшение яркости отдельной компоненты.

Разработайте структуру для хранения данных о цветном кружке + функции для манипулирования переменными такого типа.

Создайте массив цветных кружков и разработайте функцию сортировки кружков по разным признакам: по площади, по цвету, по удалению от начала координат.

Направьте в нужном направлении, что нужно сделать.

Думаю для структуры цвета так:

struct Cvet{ red = , green=, blue= }

или как-то по-другому надо?

Answer 1

На словах? Да, структура или класс (раз хотят функциональность получения компонент - значит, класс с инкапсулированными данными...) типа

class Color {
  public:
    Color() = default;
    Color(int r, int g, int b):r(r),g(g),b(b){}
    ~Color() = default;
  void setRed(int R) { r = R; };
  void setGreen(int G) ...;
  void setBlue(int B) ...;
  int getRed() const { return r; };
  int getGreen() const ...;
  int getBlue() const ...;
  void brightness(int value, int color = 0); // Для всех цветов или для конкретного
  private:
    int r = 0, g = 0, b = 0;
};

Дальше просто расписываете функции. С яркостью нужно повозиться, чтобы решить, как она должна работать - задавать абсолютные значения или относительное увеличение, например. Возможно, добавить поле максимального значения цвета - типа static const int maxValue = ...;

Ну, а с кружками - точно так же:

class Circle {
...
  private:
    Color color;
    int x, y;
};

ну и подумайте, какие функции нужны...

READ ALSO
Aрхитектура приложения

Aрхитектура приложения

Сразу прошу прощения за такой заголовок, я просто не знаю, как в двух словах описать проблему

333
Работа со службами из программы со стандартными полномочиями

Работа со службами из программы со стандартными полномочиями

Имеется следующая ситуация: 1Работаем под OS поддерживающими UAC

315
Проблемы с реализацтей Entity–component–system Design Pattern [требует правки]

Проблемы с реализацтей Entity–component–system Design Pattern [требует правки]

Реализовал ECS pattern на примере игрыПока была одна сущность - Игрок (Player) было все хорошо, создал 10 компонентов Position, SpriteSheet, State, Movable, MovableMod, Controller,...

344
Рекурсивная функция

Рекурсивная функция

Дано натуральное число nВыведите все числа от 1 до n

353