如何解决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;
}
由于 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;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。