2011-06-02 144 views
-1

色相在UIColor是不一樣的標準RGB色輪。我的意思是,在色輪兩個對立的顏色將匹配(即,黃,紫),但是如果你把兩個對立的顏色UIColor,例如:UIColor與標準RGB色輪不符?

顏色1:色調0.45
顏色2 :色調0.95

它們不匹配。有沒有辦法通過UIColor找到光譜中相反的顏色?

+3

可能的[在UIColor和標準色輪中的色調]的副本(http://stackoverflow.com/questions/5663230/hue-in-uicolor-and-standard-color-wheels) – Caleb 2011-06-02 01:47:23

回答

6

彼此相對的輪子上的顏色並不是通常所說的「匹配」,他們被稱爲「互補」,如,如果混合在一起他們,你得到的白色(或黑色,如果你正在處理減色,即,顏料)。

RGB是不是一個真正的顏色「輪子」 - 這更像是一個立方體形狀。然而,色調HSB,通常表示爲從0˚到360˚的角度,紅色在0˚,綠松石在180˚。如果你把一個值從180˚不管你下手,你會得到補充:紅0˚/180˚綠松石,綠色120˚/300˚紫等編程時,色調範圍通常被寫成之間的分數0和1。在該方案中,你可以做

fmod(val - 0.5, 1.0) 

得到補充。

你還沒有說出你期望得到的結果和你得到的結果,所以很難有專門的幫助,但0.95和0.45確實是互補的,當我用這些值創建UIColor時,我看到預期的紅色和綠松石色調。

計算機屏幕上的顏色與顏色的顏色行爲不同,因爲在第一種情況下,您是adding wavelengths of light以獲得結果,而第二種情況是selectively absorbing wavelengths。這可能是你混淆的根源。紅色加黃色等於帶顏料的橙色,但紅色加綠色則等於黃色帶光。

+0

是的,肯定讀了一下在色彩空間! – Wevah 2011-06-02 02:40:22

+0

我想知道是否有一種方法可以得到與之匹配的顏色。在常規的RGB色輪中,相反一側的顏色相匹配,但在HSB中,相反的顏色不匹配。 – Andrew 2011-06-02 02:51:38

1

answered a question just like this不是所有很久以前。它的要點是有很多不同的顏色模型。即使在你的問題中,你似乎也在考慮兩種不同的模型:黃色和紫色可能在紅黃藍模型中是免費的,但在紅綠藍模型中則沒有。