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
か?) 私は実際にこのようなものを見たことがありません。