【问题标题】:Colors (h,s,b) from 360 to 0 and from 0 to (-360) and from (-360) to (-720) and so on颜色 (h,s,b) 从 360 到 0 和从 0 到 (-360) 和从 (-360) 到 (-720) 等等
【发布时间】:2014-11-02 19:36:22
【问题描述】:

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

我的色调介于3600 之间,如果我从0 得到-1,我得到的值是-1 而不是360。我想我必须用模做一些事情来获得正确的值?!所以我的问题是将一个单位的倍数转换为 0 到 360 之间的数字。有人可以帮我吗?

【问题讨论】:

    标签: javascript colors hsb


    【解决方案1】:

    负色调值相当于360 + value,这意味着-10 相当于350。要实现该行为,请执行以下操作:

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

    这也适用于正值,val = 380 --> hue = 20。如果您正在处理大于 +/- 360 的值,只需添加 720(或 1080、1440、...)而不是360 在进行 % 360 之前。

    我们可以将它包装在一个方便的函数中,无论您输入什么,它都会返回一个介于 0 到 360 之间的值:

    function adjustHue(val) {
        if (val < 0) val += Math.ceil(-val / 360) * 360;
        return val % 360;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-08
      • 1970-01-01
      • 2011-12-31
      • 2010-11-21
      • 1970-01-01
      • 1970-01-01
      • 2015-10-27
      • 1970-01-01
      相关资源
      最近更新 更多