颜色(h,s,b)从360到0和从0到(-360)以及从(-360)到(-720)等等

时间:2014-11-02 19:36:22

标签: javascript colors hsb

我遇到了HSB颜色问题,不知道如何以正确的方式计算它。

我的色调是3600之间的色调,如果我-1来自0,我会得到值-1而不是360 {1}}。我想我会用modulo做一些事来获得正确的价值观?所以我的问题是将一个单位的倍数转换为0到360之间的数字。有人可以帮助我吗?

1 个答案:

答案 0 :(得分: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;
}