在“計算機中的顏色VII——快速計算純色的偏轉”中介紹了純色的偏轉。
本文對上文的公式進行擴展,擴展到任意的顏色。
顏色(R,G,B)偏轉ω後,如何計算偏轉顏色(R’,G’,B’)
具體的推導過程不詳述了,和前文類似。下面介紹計算過程:
令MAX為R、G、B三個分量的最大值,MIN為R、G、B三個分量的最小值
若MAX=MIN,則顏色為灰度色,無論怎麼偏轉,還是原來的顏色。
R’=R;G’=G;B’=B
若MAX≠MIN,令ρ=MAX-MIN
當G<B時,ω=-ω
ω’=ω/60×ρ
λ’=MAX-R+G-MIN+B-MIN+ω’
當λ’<0時,令λ’’=-λ’
當λ’>3ρ時,令λ’’=6ρ-λ’
否則λ’’=λ’
偏轉純色的分量
R’=2ρ-λ’’;若R’<0,則R’=0;若R’>ρ,則R’=ρ;
G’=λ’’;若G’>ρ,則G’=ρ;
B’=λ’’-2ρ;若B’<0;則B’=0;
若(G<B)XOR(λ’<0或λ’>3ρ)=True時,交換G’,B’分量的值
最後
R’=R’+MIN
G’=G’+MIN
B’=B’+MIN
(120,44,20)順時針偏轉133得到什麼顏色呢?答案是(20,120,66)
(120,44,20)逆時針偏轉133得到什麼顏色呢?答案是(22,20,120)