Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.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_Processing_P5.js - Fatal编程技术网

Javascript 如何约束随机性

Javascript 如何约束随机性,javascript,processing,p5.js,Javascript,Processing,P5.js,我正在画布上绘制一个带有顶点的随机形状。 有时形状很窄很小。 有没有办法限制随机性,这样就不会发生这种情况。 由于我对p5非常陌生,任何提示都将不胜感激 谢谢你的时间和帮助 let noOfShapes = 3; function setup(){ createCanvas(1240, 1754); noLoop(); background(0,230) colorMode(RGB) rectMode(CENTER); strokeWeight(

我正在画布上绘制一个带有顶点的随机形状。 有时形状很窄很小。 有没有办法限制随机性,这样就不会发生这种情况。 由于我对p5非常陌生,任何提示都将不胜感激

谢谢你的时间和帮助

let noOfShapes = 3;

function setup(){
    createCanvas(1240, 1754);
    noLoop();
    background(0,230)
    colorMode(RGB)
    rectMode(CENTER);
    strokeWeight(3);

}

function draw(){
    //fill(56, 37, 34);

    for(let x = 0; x < noOfShapes; x++) {
      beginShape();
      stroke(255);
      fill(25, 255, 255,100);
      //noFill();
        for(let y = 2; y < 6; y++) {
          vertex(random(10,width), random(10,width))
          // vertex(random(10,width), random(10,width))
          // vertex(random(10,width), random(10,width))
          // vertex(random(10,width), random(10,width))
        }
      endShape(CLOSE);
    }
    stroke(255);

    for(let x=20; x<= width; x = x+20){
        blendMode(DODGE);
        //fill(200,200,200)
        stroke(255);
        beginShape();
          vertex(x, 0)
          vertex(x, height+20)
        endShape();
    }

}
让noOfShapes=3;
函数设置(){
createCanvas(12401754);
noLoop();
背景(0230)
彩色模式(RGB)
矩形模式(中心);
冲程重量(3);
}
函数绘图(){
//填充(56、37、34);
for(设x=0;x对于(设x=20;x为x和y坐标创建一个随机数列表):

rx=[];ry=[];
for(设y=0;y<4;y++){
接收推送(随机(10,宽度-20));
y.push(随机(10,高度-20));
}
计算每个列表的最小值()和最大值()之间的差值:

drx=max(rx)-min(rx);
干=最大(ry)-最小(ry);
定义阈值只要任何差异低于阈值,则重复该过程:

let阈值=200;
做{
// [...]
}
而(drx
通过考虑沿45°对角线的点之间的距离,可以进一步改进该算法。使用来计算距离:

rd1.push(rx[y]*0.707+ry[y]*0.707);
rd2.推力(rx[y]*0.707-ry[y]*0.707);
使用随机坐标生成形状:

let阈值=400;
让rx,ry,drx,dry,rd1,rd2,drd1,drd2;
做{
rx=[];ry=[];rd1=[];rd2=[];
for(设y=0;y<4;y++){
接收推送(随机(10,宽度-20));
y.push(随机(10,高度-20));
rd1.推力(rx[y]*0.707+ry[y]*0.707);
rd2.推力(rx[y]*0.707-ry[y]*0.707);
}
drx=最大(rx)-最小(rx);
干=最大(ry)-最小(ry);
drd1=最大(rd1)-最小(rd1);
drd2=最大(rd2)-最小(rd2);
}
而(drx
让noOfShapes=1;
函数设置(){
createCanvas(12401754);
noLoop();
背景(0230)
彩色模式(RGB)
矩形模式(中心);
冲程重量(3);
}
函数绘图(){
for(设x=0;x对于(设x=20;x为x和y坐标创建一个随机数列表):

rx=[];ry=[];
for(设y=0;y<4;y++){
接收推送(随机(10,宽度-20));
y.push(随机(10,高度-20));
}
计算每个列表的最小值()和最大值()之间的差值:

drx=max(rx)-min(rx);
干=最大(ry)-最小(ry);
定义阈值只要任何差异低于阈值,则重复该过程:

let阈值=200;
做{
// [...]
}
而(drx
通过考虑沿45°对角线的点之间的距离,可以进一步改进该算法。使用来计算距离:

rd1.push(rx[y]*0.707+ry[y]*0.707);
rd2.推力(rx[y]*0.707-ry[y]*0.707);
使用随机坐标生成形状:

let阈值=400;
让rx,ry,drx,dry,rd1,rd2,drd1,drd2;
做{
rx=[];ry=[];rd1=[];rd2=[];
for(设y=0;y<4;y++){
接收推送(随机(10,宽度-20));
y.push(随机(10,高度-20));
rd1.推力(rx[y]*0.707+ry[y]*0.707);
rd2.推力(rx[y]*0.707-ry[y]*0.707);
}
drx=最大(rx)-最小(rx);
干=最大(ry)-最小(ry);
drd1=最大(rd1)-最小(rd1);
drd2=最大(rd2)-最小(rd2);
}
而(drx
让noOfShapes=1;
函数设置(){
createCanvas(12401754);
noLoop();
背景(0230)
彩色模式(RGB)
矩形模式(中心);
冲程重量(3);
}
函数绘图(){
for(设x=0;x