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
の値を知っていたら、なぜ彼はそれをやろうとしますか?)私は実際にこのようなことは見たことがありません。
ああ、それは面白いです。説明ありがとう! –