Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript画布如何绘制随机形状?_Javascript_Canvas - Fatal编程技术网

Javascript画布如何绘制随机形状?

Javascript画布如何绘制随机形状?,javascript,canvas,Javascript,Canvas,当用户加载页面时,我希望绘制一个随机形状。 例如一个圆。 当用户再次加载页面时,我希望绘制另一个随机形状 我知道如何绘制形状,但我可以让它们随机出现吗?您可以使用Math.Floor函数生成随机数,然后使用该随机数从阵列中绘制特定形状 由于您还没有提供数组,我创建了一个非常简单的JSFIDLE,向您展示了一个示例,只需一直按左上角的run按钮即可生成一个新的随机数 Html 为每个形状创建一个函数,将这些函数放到一个数组中,然后调用一个具有随机索引的随机形状生成器,足够随机吗?请向我们展示您的尝

当用户加载页面时,我希望绘制一个随机形状。 例如一个圆。 当用户再次加载页面时,我希望绘制另一个随机形状

我知道如何绘制形状,但我可以让它们随机出现吗?

您可以使用Math.Floor函数生成随机数,然后使用该随机数从阵列中绘制特定形状

由于您还没有提供数组,我创建了一个非常简单的JSFIDLE,向您展示了一个示例,只需一直按左上角的run按钮即可生成一个新的随机数

Html


为每个形状创建一个函数,将这些函数放到一个数组中,然后调用一个具有随机索引的随机形状生成器,足够随机吗?请向我们展示您的尝试,以便我们了解您试图实现的目标。这只是一个随机问题,与画布无关,将所有形状存储在一个数组中,让函数从数组中抽取,每次发送不同的数组索引。我在数组中得到了我的形状。如何使函数从该数组中绘制ramdom函数?
<canvas id="Canvas" width="400" height="400"></canvas>
var canvas = document.getElementById("Canvas");
var context = canvas.getContext("2d");
context.fillStyle = "#AAA";
context.fillRect(0, 0, 400, 400);

var randomShape = Math.floor((Math.random() * 3) + 1);

if (randomShape == 1) {
    context.beginPath();
    context.rect(25, 50, 200, 100);
    context.fillStyle = '#00FF00';
    context.fill();
    context.lineWidth = 7;
    context.strokeStyle = '#000';
    context.stroke();
} else if (randomShape == 2) {
    context.beginPath();
    context.arc(200, 200, 69, 0, 2 * Math.PI, false);
    context.fillStyle = '#FF0000';
    context.fill();
    context.lineWidth = 5;
    context.strokeStyle = '#000';
    context.stroke();
} else if (randomShape == 3) {
    context.beginPath();
    context.arc(276, 255, 70, 0, Math.PI, false);
    context.closePath();
    context.lineWidth = 5;
    context.fillStyle = '#0000FF';
    context.fill();
    context.strokeStyle = '#000';
    context.stroke();
}