javascript中的颜色范围

时间:2010-11-26 13:02:27

标签: javascript highcharts

使用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,导致它不好用于颜色目的...如果你明白我的意思?

有人能建议更好的方法吗?谢谢。

1 个答案:

答案 0 :(得分:4)

将输入标准化为[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);