我需要在给定整数的两种颜色之间生成一个rgb。例如,genRgb(73)将根据参数73.5给我一个介于(255,0,0)和(0,255,0)之间的rgb代码。所以0对应于(255,0,0),而90对应于(0,255,0)。
我尝试过这样的事情:
function toColor(num) {
var b = 0
if(num < 60) {
var g = num
var r = num/2
} else {
var r = num
var g = num/2
}
return "rgba(" + [r, g, b].join(",") + ")";
}
但是所有rgb代码最终看起来都非常相似,但这不是一个非常聪明的解决方案。
对此我将不胜感激。谢谢
答案 0 :(得分:1)
当num = 0,r = 255&g = 0时注意。当num的值增加时,g的值也增加。但是g的值减小。因此我们可以以这种方式进行。
function toColor(num){
var r = 255 - Math.floor(255*num/100);
var g = Math.floor(255*num/100);
var b = 0;
return "rgb(" + r + "," + g + "," + b + ")";
}
console.log(toColor(0));
console.log(toColor(50));
console.log(toColor(73.5));
console.log(toColor(100));