Oscillator

by schrodingers

HTML

<script src="http://p5js.org/js/p5.min.js"></script>

JavaScript

var circles = new Array();
var circleSpacing = 30;

function setup() {
  createCanvas(500,500);
  
  var t = 0;
  
  for (var x = 0.0; x < width + circleSpacing; x += circleSpacing){
    for (var y = 0.0; y < height + circleSpacing; y += circleSpacing){
      append(circles, new Circle(x,y,t));
      t -= PI/120;
    }
  }
  
}

function draw() {
  background(255);
  for (var i = 0; i < circles.length; i++){
    var c = circles[i];
    c.display();
  }
  
  if (frameCount < 103)
  {
    //saveCanvas("b" + str(frameCount) + ".png");
  }
  
}

function Circle(xt, yt, tt){
  this.x = xt;
  this.y = yt;
  this.theta = tt;
  this.radius = circleSpacing * 5.0/6;
  
  this.display = function(){
    noFill();
    stroke(120);
    ellipse(this.x,this.y,this.radius*2,this.radius*2);
    fill(0);
    noStroke();
    ellipse(this.x + this.radius * cos(this.theta), this.y + this.radius * sin(this.theta),5,5);
    this.theta += TWO_PI / 100;
  }
}