【发布时间】:2018-07-27 00:35:53
【问题描述】:
在使用 p5 javascript 库时,我遇到了一个似乎无法解决的问题。本质上,我想在 p5.js 中创建一个随机的“蛇”圈。
我的代码如下所示。
function setup() {
createCanvas(400, 400)
background(220)
noFill()
noLoop()
}
function draw() {
translate(200,200)
strokeWeight(1)
for(j=0;j<5;j++) {
snake()
}
}
function snake() {
rad = 10
ellipse(0,0,rad,rad)
push()
for(i=0;i<100;i++) {
a = random(0,360)
translate(rad*sin(a),rad*cos(a))
ellipse(0,0,rad,rad)
}
pop()
}
我所做的是在中心创建一个圆,然后在该圆周围以一定半径选择一个 360 度的随机点,并在那里创建一个新圆。然后我将中心点(0,0)平移到新圆的中心并再次开始该过程。
这是一条蛇,但问题是圆圈不可避免地开始重叠。
我想做的是让我的代码检查一个随机创建的新圆圈是否会与之前的任何一个重叠,如果重叠,则为该圆圈选择一个新位置。
目前我在p5.js中遇到的所有重叠检测方法,但是,使用距离来计算圆是否重叠。使用翻译当然会搞砸。
所以如果有人对我的问题有解决方案,请随时告诉我。
【问题讨论】:
标签: javascript processing p5.js