如何生成给定整数的 rgb 代码
How to Generate rgb code given an integer
我需要在给定整数的情况下生成两种颜色之间的 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 代码最终看起来都非常相似,这不是一个非常聪明的解决方案。
如有任何帮助,我将不胜感激。谢谢
注意当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));
我需要在给定整数的情况下生成两种颜色之间的 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 代码最终看起来都非常相似,这不是一个非常聪明的解决方案。
如有任何帮助,我将不胜感激。谢谢
注意当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));