使用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,导致它不好用于颜色目的...如果你明白我的意思?
有人能建议更好的方法吗?谢谢。
答案 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);