3
我試圖解碼我在Raphael.js的來源(它從HSL顏色轉換爲RGB顏色,這只是該功能的一部分)中找到的代碼位:可以使用一些幫助解碼此代碼
var R, G, B, X, C;
h = (h % 360)/60;
C = 2 * s * (l < .5 ? l : 1 - l);
X = C * (1 - abs(h % 2 - 1));
R = G = B = l - C/2;
h = ~~h;
R += [C, X, 0, 0, X, C][h];
G += [X, C, C, X, 0, 0][h];
B += [0, 0, X, C, C, X][h];
現在,我才知道什麼h = ~~h
做(基本上樓層,幾個關鍵的不同的數字),但我想不出我的生活中這意味着什麼:
R += [C, X, 0, 0, X, C][h];
爲什麼他創建了一個數組,然後引用[h]
就可以了?他是否發現變量h
等於超出一組值的值? (但爲什麼他會這樣做,如果他已經知道h
的價值?)我從來沒有見過這樣的事情,如果是這種情況,我認爲它非常聰明。
Oho,這很有趣。感謝您的解釋! –