Выбор цвета фигуры в модели HSL (c альфа-каналом ) в векторном графическом редакторе Inkscape
Визулизация перехода между цветовыми моделями RGB и HSL
H
=
{
undefined
if
M
A
X
=
M
I
N
60
∘
×
G
−
B
M
A
X
−
M
I
N
+
0
∘
,
if
M
A
X
=
R
and
G
≥
B
60
∘
×
G
−
B
M
A
X
−
M
I
N
+
360
∘
,
if
M
A
X
=
R
and
G
<
B
60
∘
×
B
−
R
M
A
X
−
M
I
N
+
120
∘
,
if
M
A
X
=
G
60
∘
×
R
−
G
M
A
X
−
M
I
N
+
240
∘
,
if
M
A
X
=
B
{\displaystyle H={\begin{cases}{\mbox{undefined}}&{\mbox{if }}MAX=MIN\\60^{\circ }\times {\frac {G-B}{MAX-MIN}}+0^{\circ },&{\mbox{if }}MAX=R\\&{\mbox{and }}G\geq B\\60^{\circ }\times {\frac {G-B}{MAX-MIN}}+360^{\circ },&{\mbox{if }}MAX=R\\&{\mbox{and }}G<B\\60^{\circ }\times {\frac {B-R}{MAX-MIN}}+120^{\circ },&{\mbox{if }}MAX=G\\60^{\circ }\times {\frac {R-G}{MAX-MIN}}+240^{\circ },&{\mbox{if }}MAX=B\end{cases}}}
,
S
=
{
0
if
L
=
0
or
M
A
X
=
M
I
N
M
A
X
−
M
I
N
M
A
X
+
M
I
N
=
M
A
X
−
M
I
N
2
L
,
if
0
<
L
≤
1
2
M
A
X
−
M
I
N
2
−
(
M
A
X
+
M
I
N
)
=
M
A
X
−
M
I
N
2
−
2
L
,
if
1
2
<
L
<
1
{\displaystyle S={\begin{cases}0&{\mbox{if }}L=0{\mbox{ or }}MAX=MIN\\{\frac {MAX-MIN}{MAX+MIN}}={\frac {MAX-MIN}{2L}},&{\mbox{if }}0<L\leq {\frac {1}{2}}\\{\frac {MAX-MIN}{2-(MAX+MIN)}}={\frac {MAX-MIN}{2-2L}},&{\mbox{if }}{\frac {1}{2}}<L<1\\\end{cases}}}
, или, в общем случае,
S
=
M
A
X
−
M
I
N
1
−
|
1
−
(
M
A
X
+
M
I
N
)
|
{\displaystyle S={\frac {MAX-MIN}{1-|1-(MAX+MIN)|}}}
,
L
=
1
2
(
M
A
X
+
M
I
N
)
{\displaystyle L={\begin{matrix}{\frac {1}{2}}\end{matrix}}(MAX+MIN)}
, где:
R, G, B — значения цвета в цветовой модели RGB , значения в диапазоне [0; 1] (R — красный, G — зелёный, B — синий).
MAX — максимум из трёх значений (R, G, B)
MIN — минимум из трёх значений (R, G, B)
H — тон [0; 360]
S — насыщенность [0; 1]
L — светлота [0; 1]
Q
=
{
L
×
(
1.0
+
S
)
,
if
L
<
0.5
L
+
S
−
(
L
×
S
)
,
if
L
≥
0.5
{\displaystyle Q={\begin{cases}L\times (1.0+S),&{\mbox{if }}L<0.5\\L+S-(L\times S),&{\mbox{if }}L\geq 0.5\end{cases}}}
P
=
2.0
×
L
−
Q
{\displaystyle P=2.0\times L-Q}
H
k
=
H
360
{\displaystyle H_{k}={H \over 360}}
(приведение к интервалу [0,1])
T
R
=
H
k
+
1
3
{\displaystyle T_{R}=H_{k}+{\frac {1}{3}}}
T
G
=
H
k
{\displaystyle T_{G}=H_{k}}
T
B
=
H
k
−
1
3
{\displaystyle T_{B}=H_{k}-{\frac {1}{3}}}
if
T
c
<
0
→
T
c
=
T
c
+
1.0
for each
c
=
R
,
G
,
B
{\displaystyle {\mbox{if }}T_{c}<0\rightarrow T_{c}=T_{c}+1.0\quad {\mbox{for each}}\,c=R,G,B}
if
T
c
>
1
→
T
c
=
T
c
−
1.0
for each
c
=
R
,
G
,
B
{\displaystyle {\mbox{if }}T_{c}>1\rightarrow T_{c}=T_{c}-1.0\quad {\mbox{for each}}\,c=R,G,B}
Для каждого цвета
c
=
R
,
G
,
B
{\displaystyle c=R,G,B}
:
c
o
l
o
r
c
=
{
P
+
(
(
Q
−
P
)
×
6.0
×
T
c
)
,
if
T
c
<
1
6
Q
,
if
1
6
≤
T
c
<
1
2
P
+
(
(
Q
−
P
)
×
(
2
3
−
T
c
)
×
6.0
)
,
if
1
2
≤
T
c
<
2
3
P
,
otherwise
{\displaystyle \qquad \mathrm {color} _{c}={\begin{cases}P+\left((Q-P)\times 6.0\times T_{c}\right),&{\mbox{if }}T_{c}<{\frac {1}{6}}\\Q,&{\mbox{if }}{\frac {1}{6}}\leq T_{c}<{\frac {1}{2}}\\P+\left((Q-P)\times ({\frac {2}{3}}-T_{c})\times 6.0\right),&{\mbox{if }}{\frac {1}{2}}\leq T_{c}<{\frac {2}{3}}\\P,&{\mbox{otherwise }}\end{cases}}}