Javascript使用Math.random在for循环中生成随机rgba值

Javascript使用Math.random在for循环中生成随机rgba值,javascript,for-loop,rgba,Javascript,For Loop,Rgba,我是个新手,如果这是个愚蠢的问题,我道歉。这只是一个简单的for循环,可以画n个圆圈,我想随机生成rgba值,但它使用的是最后一个strokeStyle,我做错了什么 for (var i = 0; i < 10; i++){ var x = Math.random() * window.innerWidth; var y = Math.random() * window.innerHeight; var colour = Math.random() * 255; c.beginPath

我是个新手,如果这是个愚蠢的问题,我道歉。这只是一个简单的for循环,可以画n个圆圈,我想随机生成rgba值,但它使用的是最后一个strokeStyle,我做错了什么

for (var i = 0; i < 10; i++){
var x = Math.random() * window.innerWidth;
var y = Math.random() * window.innerHeight;
var colour = Math.random() * 255;

c.beginPath();
c.arc(x, y, 30, 0, Math.PI * 2, false);
c.strokeStyle = 'rgba(colour, colour, colour, Math.random())';
c.stroke(); }
for(变量i=0;i<10;i++){
var x=Math.random()*window.innerWidth;
var y=Math.random()*window.innerHeight;
var color=Math.random()*255;
c、 beginPath();
c、 弧(x,y,30,0,Math.PI*2,false);
c、 strokeStyle='rgba(color,color,color,Math.random())';
c、 笔划();}
非常感谢你

'rgba(color,color,color,Math.random())”
是一个文本字符串,这使得它成为无效的CSS(因为CSS既不能识别
color
也不能识别
Math.random()
),将被丢弃

您可能需要一个新的报价(请注意不同的报价):


此外,请注意,这不会给你一个相当随机的颜色;它将为您提供随机灰色,因为您将R、G和B组件链接为相同的
颜色。如果希望这三个组件能够不同,则需要为每个组件生成一个新的随机数。

这可以通过以下方式格式化颜色字符串来完成:

"rgba(" + r + "," + g + "," + b + "," + a + ")";
其中,
r
g
b
是0到255范围内的整数,
a
是0.0到1.0范围内的浮点

有关完整示例,请参见以下代码段:

var c=document.getElementById(“画布”).getContext(“2d”);
对于(变量i=0;i<10;i++){
const x=Math.random()*c.canvas.width;
const y=Math.random()*c.canvas.height;
//红色、绿色和蓝色应为0-255范围内的整数
const r=parseInt(Math.random()*255);
const g=parseInt(Math.random()*255);
const b=parseInt(Math.random()*255);
//Alpha是0.0-1.0范围内的浮点
常数a=数学随机数();
c、 beginPath();
c、 弧(x,y,30,0,Math.PI*2,false);
c、 strokeStyle=“rgba(“+r+”、“+g+”、“+b+”、“+a+”);
c、 笔划();
}

您的意思是连接吗?现在你只需要一个字符串,它的字面意思是
rgba(color,color,color,Math.random())
@CertainPerformance是的,我没有意识到变量不起作用。然而,如果你只使用数字,你可以把它写在引号里,比如“rgba(120,2,134,0.4)”,为什么它不只是一个字符串呢?
"rgba(" + r + "," + g + "," + b + "," + a + ")";