CodeNet / Приложения / Графика / Учебник по компьютерной графике
Компьютерная Графика
- 1 шаг) Рассмотрим точку внутри куба.
- 2 шаг) Рассмотрим вектор (0,0,0) – (R,G,B). Какие грани будет пересекать этот вектор?
Если R = max R соответствующая прямая пересечет грань куба [-1,0,0,1] = [ERDW].
- Если G = max G: [0,1,0,1] = [FWDG].
- Если B = max B: [0,0,-1,1] = [BEWF].
Рассмотрим вектор (1,1,1) – (R,G,B).
Рассмотрим уравнение плоскости
Уравнение линии, проходящей через точки
Запишем в параметрическом виде.
Пусть линия пересекает плоскость в точке
Тогда условие пересечения имеет вид:
Отсюда выражаем k:
AB – вектор цвета. AC – вектор цвета, продолженный до пересечения с гранью. Тогда яркость равна:
Исходя из системы (1), это будет равно:
Исходя из (2) и учитывая, что
Можно записать, что
Bv – значение компоненты B.
B – коэффициент в уравнение плоскости.
Отсюда следует, что значение яркости можно записать: Brightness = 1/k = max(R,G,Bv) принадлежит интервалу [0, 1],
если в процентах, то умножить на 100. Теперь ищем насыщенность (Saturation).
Saturation (по определению) – это расстояние от точки серого до заданной (RGB), делённое на расстояние от точки серого до точки пересечения плоскости и вектора от точки серого до (R,G,B).
Точка серого – это расстояние на главной диагонали от 0 до значения яркости.
Точка M пересекает плоскости куба и прямой P1P2.
Таким образом, учитывая предыдущие формулы, найдем, что Saturation = 1/k.
k имеет следующие значение:
Таким образом
Насыщенность равна: