Ответ 1
Для ясности пусть "гексагональные" координаты (r,g,b)
, где r
, g
и b
- красный, зеленый и синий, соответственно. Координаты (r,g,b)
и (x,y)
связаны следующим образом:
y = 3/2 * s * b
b = 2/3 * y / s
x = sqrt(3) * s * ( b/2 + r)
x = - sqrt(3) * s * ( b/2 + g )
r = (sqrt(3)/3 * x - y/3 ) / s
g = -(sqrt(3)/3 * x + y/3 ) / s
r + b + g = 0
Вывод:
-
Сначала я заметил, что любая горизонтальная строка шестиугольников (которая должна иметь константу
Шестиугольники с заданной координатойy
-координата) имела постоянную координатуb
, поэтомуy
зависела только отb
. Каждый шестиугольник может быть разбит на шесть равносторонних треугольников со сторонами длиныs
; центры шестиугольников в одном ряду составляют половину боковых сторон выше/ниже центров в следующем ряду (или, возможно, проще видеть, центры в одном ряду - это 3 стороны длины выше/ниже центров, расположенных в двух рядах), поэтому для каждого изменения1
вb
,y
изменяется3/2 * s
, давая первую формулу. Решение дляb
в терминахy
дает вторую формулу.
r
имеют центры на прямой, перпендикулярной оси r в точке на оси r
, которая находится 3/2 * s
от начала координат (аналогично приведенному выше выводу y
в терминах b
). Ось r
имеет наклон -sqrt(3)/3
, поэтому прямая, перпендикулярная к ней, имеет наклон sqrt(3)
; точка на оси r
и на линии имеет координаты (3sqrt(3)/4 * s * r, -3/4 * s * r)
; поэтому уравнение в x
и y
для линии, содержащей центры шестиугольников с r
-координатом r
, составляет y + 3/4 * s * r = sqrt(3) * (x - 3sqrt(3)/4 * s * r)
. Подстановка для y
с использованием первой формулы и решение для x
дает вторую формулу. (Это не то, как я на самом деле получил это, но мой вывод был графическим с большим количеством проб и ошибок, и этот алгебраический метод более краткий.)
Множество шестиугольников с заданной координатой r
является горизонтальным отражением множества шестиугольников с этой координатой g, поэтому независимо от формулы для координаты x
в терминах r
и b
, координата x
для этой формулы с g
вместо r
будет противоположной. Это дает третью формулу.
Четвертая и пятая формулы взяты из подстановки второй формулы для b
и решения для r
или g
в терминах x
и y
.
Окончательная формула взята из наблюдения, проверенной алгеброй с более ранними формулами.