微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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 举报,一经查实,本站将立刻删除。