Trouble making ellipses in curving line non-overlapping

Hello!

I need some help with this code with which I have been making loop-d-loop lines of ellipses. I am having a lot of trouble getting them to draw without overlapping. Any help would be appreciated!

Warmly,
Druppa

``````ArrayList<Circle> circles;
Circle circle;
float noiseScale;
float noiseStrength;

// Let's make sure we don't get stuck in an infinite loop
int protection = 0;
// Does it overlap any previous circles?
boolean overlapping = false;

void setup() {
size(2000, 1300);

noiseScale = 6765;
noiseStrength = 2;
noiseDetail(3, 0.8);

circles = new ArrayList<Circle>();

circle = new Circle();

// Try to get to 500
while (circles.size() < 500) {

overlapping = false;

circle.update(); // move the circle
//circle = new Circle();

for (Circle other : circles) {
float d = dist(circle.x, circle.y, other.x, other.y);
if (d < circle.r + other.r) {
overlapping = true;
break;
}
}

// If not, keep it!
if (!overlapping) {
}

// Are we stuck?
protection++;
if (protection > 5000) {
break;
}
}

// Draw all the circles
for (Circle c : circles) {
c.display(c.x, c.y, c.r);
}
}

class Circle {
float x, y, z, r;
float speed, n, angle;

Circle() {
x = random(144, width-144);
y = random(144, height-144);
z = 0.08;
r = 55;
}

void display(float x, float y, float r) {

fill(255, 0, 175, 100);
noStroke();
circle(x, y, r);
}

void update() {

angle = noise(x/noiseScale, y/noiseScale, z)* noiseStrength;
x += cos (angle) * speed;
y += sin (angle) * speed;
//z += 0.008;

n+=0.08;

//size = 5+noise(n)*55;
speed = r;
speed = speed - noise(n) * speed/144;
noiseStrength = noiseStrength + noise(n) * sin(0.01)*21;
}
}

``````