Javascript 如何约束随机性
我正在画布上绘制一个带有顶点的随机形状。 有时形状很窄很小。 有没有办法限制随机性,这样就不会发生这种情况。 由于我对p5非常陌生,任何提示都将不胜感激 谢谢你的时间和帮助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(
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