Return to menu
/*

   Structure 3 (work in progress)

   A surface filled with one hundred medium to small sized circles.
   Each circle has a different size and direction, but moves at the same slow rate.
   Display:
   A. The instantaneous intersections of the circles
   B. The aggregate intersections of the circles

   Implemented by Casey Reas <http://groupc.net>
   Uses circle intersection code from William Ngan <http://metaphorical.net>
   Processing v.68 <http://processing.org>

*/

int numCircle = 100;
Circle[] circles = new Circle[numCircle];

void setup()
{
  size(640, 480);
  framerate(30);
  for(int i=0; i<numCircle; i++) {
    circles[i] = new Circle(random(width), random(height), random(2, 6)*10);
  }
  ellipseMode(CENTER_DIAMETER);
  background(255);
}


void draw()
{
  stroke(0, 10);
  for(int i=0; i<numCircle; i++) {
    circles[i].update();
  }
}


class Circle {

  float x, y, r;

  Circle( float px, float py, float pr) {
    x = px;
    y = py;
    r = pr;
  }

  void update() {
    noFill();
    stroke(0);
    ellipse(x, y, r, r);
  }
}