Javascript生成n种不是随机的颜色



我必须确保根据过去的数值生成颜色。

例如,我有数字n必须返回颜色(n),10 -> color (10)

所以每次我传递同样的数字,同样的颜色必须总是返回给我。

不能有两个数字给我相同的颜色。

问题是我不知道这个n可以有多大,所以我不能定义一个预设颜色数组

有谁能帮我吗?

如果是十六进制颜色,那么你可以简单地使用这两个函数在它们之间进行转换。

var number = parseInt('ffd800', 16);
console.log(number);
var hex = number.toString(16);
console.log(hex)

您可以将RGB转换为单个整数,并进行位移位。

function RGBToInt(red, green, blue){
let rgb = (red<<8)+green;
rgb = (rgb<<8)+blue;
return rgb;
}

Since R,G &B为0 ~ 255的整数,最终的整数范围为0 ~ 16777215。得到单独的R G &B从整数返回,你需要向另一个方向移动

function IntToRGB(rgb){
let colors = {};
colors.red = (rgb>>16) & 0xFF;
colors.green = (rgb>>8) & 0xFF;
colors.blue = rgb & 0xFF;
return colors;
}

最新更新