xxxxxxxxxx
ArrayList<Rectangle> rects;
int numRects = 150;
int minDist = 20;
void setup() {
size(500, 500);
background(25);
initRects();
}
void draw() {
background(25);
translate(width/2, height/2);
rotate(PI/4);
for (Rectangle r : rects) {
r.show();
r.update(rects);
}
stroke(25);
noFill();
strokeWeight(500);
ellipse(0, 0, 850, 850);
}
void initRects() {
rects = new ArrayList<Rectangle>();
for (int i = 0; i < numRects; i++) {
float x = 0, y = 0;
boolean b = false;
int count = 0;
while (!b) {
x = random(-width/2-100, width/2+100);
y = random(-height/2-100, height/2+100);
float d = 0;
b = true;
for (Rectangle r : rects) {
d = dist(r.pos.x, r.pos.y, x, y);
if (d < minDist) {
b = false;
break;
}
}
if (count > 1000)
break;
count++;
}
if (b)
rects.add(new Rectangle(x, y));
}
}
void keyReleased() {
if (keyCode == ENTER || keyCode == RETURN) {
initRects();
}
}