0

HSB カラーの問題があり、正しい方法で計算する方法がわかりません。

360との間の色の色相を持って0います。正しい値を取得するには、モジュロで何かをしなければならないと思いますか?! だから私の問題は、単位の倍数を0から360の間の数値に変換することです.誰かが私を助けてくれますか?-10-1360

4

1 に答える 1

1

負の色相値は に相当します360 + value。つまり、-10 は 350 に相当します。その動作を実現するには、次のようにします。

var val = -10; // or whatever your value is
var hue = (val + 360) % 360 // --> 350

これは正の値でも正しく機能します。val = 380 --> hue = 20. +/- 360 より大きい値を扱う場合は、 % 360 を実行する前に720(または 1080、1440、...) を追加するだけです。360

入力したものは常に 0 から 360 の間の値を返す便利な関数でラップできます。

function adjustHue(val) {
    if (val < 0) val += Math.ceil(-val / 360) * 360;
    return val % 360;
}
于 2014-11-02T20:51:32.227 に答える