【问题标题】:colour range in javascriptjavascript中的颜色范围
【发布时间】:2010-11-26 13:02:26
【问题描述】:

使用 JavaScript,如果我有一个低整数和一个高整数,并且我想计算出一系列 HEX 颜色,以表示该范围内的不同值...什么是最好的方法干吗?

我可以举个例子:

// calculate total value
var total = 0;
for( d in data ){
  total += data[d].value;
}

// Our main color
var r=150,g=200,b=250,

// some color calculations based on value and total value

val = (data[iso].value/total)*35;

r -= Math.round(val*30);
g -= Math.round(val*30);
b -= Math.round(val*30);

此代码当前正在尝试创建一系列颜色,但它在传递给它的数字非常高时下降,因为它对于 r、g 和 b 中的每一个都低于 0,导致它不好出于颜色目的...如果您明白我的意思吗?

谁能提出更好的方法?谢谢。

【问题讨论】:

    标签: javascript highcharts


    【解决方案1】:

    将您的输入标准化为 [0,1] 范围,然后使用该值在两种有效颜色之间进行插值。

    var norm = (value - minimum) / (maximum - minimum);
    r = Math.round(norm * minRed   + (1 - norm) * maxRed);
    g = Math.round(norm * minGreen + (1 - norm) * maxGreen);
    b = Math.round(norm * minBlue  + (1 - norm) * maxBlue);
    

    【讨论】:

    • 感谢您的回答,我已经转移到另一个项目一段时间了,但是一旦我回到这个项目,我会试一试。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-18
    • 1970-01-01
    • 1970-01-01
    • 2016-01-21
    • 1970-01-01
    相关资源
    最近更新 更多