Дорогой дневник!
В прошлый раз я начала разбираться с цветом. Краткое содержание предыдущего поста: существуют цвета, которые нельзя получить, смешивая три базисных цвета (красный, зелёный, синий).
Сегодня я попробую рассказать, как получается диаграмма цветности =)
Нужно очень внимательно следить за рассуждениями. Прости, @Hyena , образование — это не всегда лёгкое вечернее чтиво =)
В общем, мы хотим составлять любые цвета из трёх базовых. Которые никак не могут быть получены друг из друга. Решено, что это красный, зелёный и синий (потому что в глазах у нас есть три типа клеток, которые как раз чувствуют красный, зелёный и синий цвета).
Раз эти цвета независимы друг от друга, то каждый цвет можно представить вектором, который равен сумме трёх других векторов:
Вот смотрите, у нас есть три независимые оси (R, G и B). Это три наших цвета. Если мы сложим немного зелёного, немного синего и немного красного, то получим вот такой интересный цвет. На графике это стрелочка цвета фуксии =)
Но рисовать вот такие трёхмерные диаграммы сложно, долго и непонятно. Поэтому смотрите, что делается. Отложим по единичке на каждой оси и нарисуем единичную плоскость (может она и не так называется, но это не сильно важно =) ):
А каждый цвет-вектор, который выходит из начала координат, будет втыкаться (проецироваться?) в нашу единичную плоскость. Таким образом на этой плоскости у нас будут все возможные варианты цветов, которые мы можем получить из трёх базовых.
Теперь вот этот единичный треугольник мы повернём так, чтобы он встал к нам "лицом":
Вот тут надо кое-что отметить и я не поленюсь процитировать:
Чтобы не путаться, отдельно выделим что координаты цвета — это положение конца вектора цвета в трёхмерной системе, и обозначаются они заглавными буквами (RGB), а координаты цветности — это положение точки цвета на плоской диаграмме цветностей, и обозначаются они строчными буквами (rg) и их достаточно двух.
Но используя равносторонний треугольник прям ОЧЕНЬ-ОЧЕНЬ неудобно записывать координаты цветности (ниже всё будет показано, не пугайся, дорогой дневник). Поэтому снова идём на хитрость. Выберем наши оси R, G и B так, чтобы единичная плоскость предстала прямоугольным треугольником. Сжимаем оси (которые были на первом рисунке) поближе друг к другу и получаем:
Тут картинка повёрнута, но так надо. У нас по оси икс (из прямого угла треугольника — направо) будет координата цветности r, а по оси игрек (из прямого угла треугольника — вверх) будет координата цветности g.
Теперь нарисуем в этом треугольнике все возможные цвета, которые можно получить из трёх базовых.
А ещё нарисуем область видимых реальных цветов (красная линия). И мы видим, что довольно-таки большая часть видимых цветов оказалась вне треугольника:
Вот эта красная кривая называется локус. А то место, где она заходит в левую часть графика (левее оси g) соответствует тем местам на графике в предыдущем посте, где компоненты цвета имели отрицательные координаты. Вот та картинка:
И последнее нехитрое действие, которое нужно будет сделать, это выбрать три вершины треугольника, который полностью охватит наш локус. Эти вершины будут соответствовать нереальным, несуществующим цветам, но мы строим модель =) поэтому просто нарисуем треуглоьник.
(тут был матан и я его выкинула =) )
Вот такой треугольник XYZ был выбран. Он расположен как можно ближе к локусу и полностью его закрывает.
Теперь сделаем из этого треугольника XYZ прямоугольный. Z поместим в начало координат. X расположим по оси икс, а Y — по оси игрек. И тогда наш локус примет вот такую форму:
ВНИМАНИЕ! ВНИМАНИЕ! Вот эта цветная область внутри локуса — это не тот цветной треугольник RGB, который мы строили выше. А все видимые человеком цвета. Но отображается условной раскраской, потому что монитор отобразить все цвета не может.
А обычный монитор отображает примерно вот такие цвета:
И наверняка многим людям, выбирающим себе монитор, знакомы подобные картинки.
Сложно. Долго. Не очень понятно. Но без этого никак, дорогой дневник, иначе так и останешься серостью.
Вот такие дела, дорогой дневник. С любовью, твоя Ксеня.