2013-08-27 24 views
1

我想隨機化多種顏色,所有顏色都具有相同的亮度(但不同的顏色)。現在有一個很好的色彩空間,如LAB,可以讓你做到這一點,但轉換回RGB時會有點棘手,因爲在LAB空間中可以選擇的所有顏色都不能在正常的RGB中表示。隨機化一個固定亮度的顏色

我決定採取以下方法(僞差,心中永遠的範圍和精確值):

L = some fixed value 
while r, g or b not in range 0.0 to 1.0: 
    a = random value 
    b = random value 
    r, g, b = LABtoRGB(L, a, b) 

現在,這往往只需要1或2次迭代L=50(因爲RGB可以代表對於這種輕便而言,顏色的很大一部分),但我不喜歡這種解決方案。

當然有更好的方法嗎?乾杯!

回答

0

最簡單的,雖然這樣做不是最準確的方法是隨機選擇R, G & B這樣sqrt(R^2+G^2+B^2) == L(可能通過從與(L^2-R^2)/2平均的分佈的正態分佈的L*sqrt(3)/3平均值,G繪圖RB是現在sqrt(L^2 - R^2 - G^2)