【发布时间】:2018-09-23 06:28:01
【问题描述】:
为分配制作一个随机艺术生成器。我们应该随机弹出正方形,但我不知道要画一个正方形。这就是我目前所拥有的
function drawSquare(canvas, context, color){
var x= Math.floor(Math.random()*canvas.width);
var y= Math.floor(Math.random()*canvas.height);
context.beginPath();
context.fillStyle = color;
context.fillRect (x,y, canvas.width, canvas.height)
}
【问题讨论】:
-
看起来几乎是对的,尽管您不需要 beginPath,因为它只是一个填充而不是描边。您想将矩形的宽度/高度设置得更小,而现在您要使矩形与画布一样大。下一步是调用 drawSquare 来绘制尽可能多的正方形,这样你就可以使用 for 循环。
-
@Noface 谢谢!所以我应该将 x 和 y 更改为 math.floor(Math.random()*20 );或类似的东西来设置大小?并且 .fillrect (x,y,width,width) 会因为正方形大小相同而起作用吗?
-
@Noface 就调用它而言,我们应该为你的 for 循环的每次迭代随机选择,如果它绘制一个圆形或一个正方形,它应该随机选择......所以现在在我的我有函数... for (var i=0; i
-
是的,20 表示 20 像素。并将高度设置为与宽度相同确实会形成一个正方形。您还可以设置相对于屏幕宽度或高度的大小,例如屏幕宽度的 10% 将是
window.innerWidth*0.1- 这将变成一定数量的像素(取决于屏幕宽度)。是的,调用Math.random()生成一个介于> 0 和Math.floor。 -
@Noface 好的最后一个问题,谢谢你是 javascript 新手,所以我很感激......我是否需要在开始我的 if 函数之前调用 Math.random,或者那会是什么时候它被称为,例如我有: var colors = ['red','blue','green'] for (var i=0; i
标签: javascript canvas 2d drawing2d