Задание цветов
Важной составляющей рисования является цвет, поэтому очень важно иметь ясное представление о том, как цвета воспроизводятся в системе iOS. Это одна из тех областей, где комплект UIKit предоставляет класс UlColor на языке Objective-C. Класс UlColor нельзя использовать непосредственно в вызовах функций оболочки Core Graphics, но поскольку этот класс служит лишь оболочкой для класса CGColor, который как раз и требуется для вызова функций Core Graphics, то ссылку на объект класса CGColor можно извлечь из экземпляра объекта класса UlColor, используя его свойство CGColor, как это было сделано ранее.
Экземпляр объекта типа UlColor сначала был создан с помощью служебного метода redColor, а затем было извлечено содержимое свойства CGColor этого объекта, которое и было передано вызываемой функции.
Немного теории цвета применительно к машинной графике.
В современной машинной графике весьма распространено представление цветов как разлагаемых на четыре составляющие: красный, зеленый, синий (основные цвета) и альфа канал. В библиотеке Quartz 2D каждая из этих составляющих цвета представлена значением типа CGFloat — 4-байтовым значением с плавающей точкой в пределах от 0,0 до 1,0, которое в iPhone и iPad соответствует типу float.
Красную, зеленую и синюю составляющие цвета очень легко понять, поскольку они представляют собой основные аддитивные цвета (additive primary colors), или цветовую модель RGB (RGB color model) . Если сложить вместе свет этих трех оттенков в равных пропорциях, то в конечном итоге получится воспринимаемый зрением человека белый свет или же оттенок серого, если пропорции смешиваемых основных цветов окажутся не совсем равными. Сочетая эти три основных цвета в разных пропорциях, можно получить самые разные цвета, образующие гамму (gamut).
На уроках рисования в школе вас, вероятно, учили, что основными цветами являются красный, желтый и синий. Эти основные цвета принято называть исторически сложившимися основными субтрактивными цветами (historical subtractive primaries), или цветовой моделью RYB (RYB color model), но о них очень мало упоминается в современной теории цвета, а в машинной графике они почти никогда не применялись.
- Дата: 10-01-2015, 22:47