我真的不知道RGB颜色是如何工作的(我的意思是必须插入什么值才能获得某种颜色)。
我的问题是,我想打印圆环图(chart.js),但数据长度是动态的(可以是1或3,或43或数百)。所以,我想创建一个圆环图,显示所有数据,每个数据的位置,它显示不同的颜色,但只有蓝色(浅蓝色,深蓝色,像渐变)(Example)。到目前为止,我发现生成随机颜色的代码如下:
r = Math.floor(Math.random() * 200);
g = Math.floor(Math.random() * 200);
b = Math.floor(Math.random() * 200);
color = 'rgb(' + r + ', ' + g + ', ' + b + ')';
有什么建议,这样颜色只有蓝色吗?
答案 0 :(得分:3)
如果您只是针对不同的蓝色色调,但想要随机创建它们,那么最好使用hsl()颜色而不是rgb()颜色
像这样的东西
h = 240;
s = Math.floor(Math.random() * 100);
l = Math.floor(Math.random() * 100);
color = 'hsl(' + h + ', ' + s + '%, ' + l + '%)';
h 代表色调,它决定了哪种基色开始。它使用色轮来定义它,就像这样
我选择240度,作为基色蓝色
s 选择饱和度。这从0%到100%。这基本上是"蓝色"是颜色。 100%是色轮边缘的蓝色。 0%是色轮的中心(白色)
l 代表亮度,颜色是浅色还是深色。标准设置为50%,如果你降低(最小0%),阴影会变暗。如果你走得更高(最大100%),那么阴影就会变浅。
这会给你一系列蓝色调,可以说是一个相当宽的范围,可以选择,而不是一组随机的颜色
所有现代浏览器都支持这种使用颜色的方式,取决于您希望支持的距离是否会遇到问题。如果您需要支持旧浏览器,请查看以下链接
答案 1 :(得分:2)
你可以试试这个:
function randomBlue () {
return "rgb(0, 0, " + (Math.floor(Math.random() * 255)) + ")";
}
答案 2 :(得分:0)
如果您只是基本的蓝色我同意@Pointy,请使用rgb(0,0,255)
。
代码是:
// r = Math.floor(Math.random() * 200);
// g = Math.floor(Math.random() * 200);
// b = Math.floor(Math.random() * 200);
r=0;
g=0;
b=255;
color = 'rgb(' + r + ', ' + g + ', ' + b + ')';