На этом шаге рассмотрим модель HSV.
Модель HSV (Hue, Saturation, Value — оттенок, насыщенность, значение) не смешивает основные цвета при моделировании нового цвета, как в случае с RGB, а просто изменяет их свойства. Это очень напоминает принцип, используемый художниками для получения новых цветов — подмешивая к чистым цветам белую, черную или серую краски.
Пространство цветов этой модели задается пирамидой с шестиконечным основанием, так называемый Hexcone (рис. 1).
Рис.1. Цветовая модель HSV
Координаты в этой модели имеют следующий смысл:
Установку значения цвета в координатах HSV можно выполнить с помощью метода QColor::setHsv() или QColor::setHsvF(). Для того чтобы получить цветовое значение в цветовой модели HSV, нужно передать в метод getHsv() адреса трех целочисленных значений (или вещественных, если это getHsvF()).
Следующий пример устанавливает CMYK-значение и получает в трех переменных его HSV-эквивалент (рис. 2):
color.setCmyk(100, 200, 0, 55); int h, s, v; color.getHsv(&h, &s, &v);
Рис.2. Пример эквивалента HSV
Файлы приложения можно взять здесь.
На следующем шаге рассмотрим константы именованных цветов.