Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.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 JS随机化lineTo_Javascript_Random_Draw - Fatal编程技术网

Javascript JS随机化lineTo

Javascript JS随机化lineTo,javascript,random,draw,Javascript,Random,Draw,我需要随机化形状的坐标。 我知道我需要以某种方式介绍Math.floor(Math.Random*num);在那里排队,但我所做的一切似乎都不起作用 这是我试图随机化的带有填充坐标的块 var c=document.getElementById("myCanvas"); var ctx=c.getContext("2d"); ctx.lineWidth="5"; ctx.strokeStyle="black"; ctx.moveTo; ctx.lineTo(100,20); ctx.line

我需要随机化形状的坐标。 我知道我需要以某种方式介绍Math.floor(Math.Random*num);在那里排队,但我所做的一切似乎都不起作用

这是我试图随机化的带有填充坐标的块

var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
ctx.lineWidth="5";
ctx.strokeStyle="black";  
ctx.moveTo;
ctx.lineTo(100,20);
ctx.lineTo(30,400);
ctx.lineTo(300,40);
ctx.lineTo(10,20);
ctx.stroke();
我找了又找,找不到任何直接的原因。 对不起,这也是一个很基本的问题,我对这个问题还很陌生,还在学习基础知识

提前谢谢你

下面是我在下面解释的内容

检查有关画布的语法

如果希望能够快速轻松地指定随机坐标,可以将其封装在函数中

function randCoord(factor){
    return Math.random() * factor;
}
然后像这样使用它:

// all of these will go to different points
ctx.moveTo(randCoord(300),randCoord(100));
ctx.lineTo(randCoord(300),randCoord(100));
ctx.lineTo(randCoord(300),randCoord(100));
ctx.lineTo(randCoord(300),randCoord(100));
您可以设置默认比例:

function randCoord(factor){
    if (factor == undefined){
        factor = 100;
    }
    return Math.random() * factor;
}
这将允许您简单地编写函数名

ctx.lineTo(randCoord(),randCoord());
您还可以创建另一个函数,该函数仅添加一个随机附加点

function addRandomPoint(xFactor, yFactor) {
    ctx.lineTo( randCoord(xFactor), randCoord(yFactor) );
}

// these will all add new points
addRandomPoint();
addRandomPoint();
addRandomPoint(200, 300);
addRandomPoint(-100, 25);
然后在循环中总结出许多要点

// this will add 10 new points
for (var i = 0; i < 10; i++) {
    addRandomPoint();
}
//这将添加10个新点
对于(变量i=0;i<10;i++){
添加随机点();
}
所以你可以这样做:

var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
ctx.lineWidth="5";
ctx.strokeStyle="black";
    ctx.moveTo(10, 10);
for (var i = 0; i < 10; i++) {
    addRandomPoint();
}
ctx.stroke();
var c=document.getElementById(“myCanvas”);
var ctx=c.getContext(“2d”);
ctx.lineWidth=“5”;
ctx.strokeStyle=“黑色”;
ctx.moveTo(10,10);
对于(变量i=0;i<10;i++){
添加随机点();
}
ctx.stroke();

您尝试过什么?它是如何不起作用的(错误的、不受欢迎的行为等)?非常感谢。我会把它整合起来,我会让你知道它是否正常工作。我愿意接受你的回答,但我还没有获得我的分数。再次干杯,不客气@用户3178364您能接受答案吗?您可能无法向上投票,但应该可以选择复选标记。