xxxxxxxxxx
// Equations from Fergus Crawshay(Ray) Murray at http://oolong.co.uk/Trochor.htm
// sin, cos, frameCount, TWO_PI, vertex
// 17 wobbly rectangles
// no interaction
int numPoints ;
float incr, R1, numTurns, phi, sw1, ratio1;
void setup() {
size(700, 600);
numPoints = 200;
incr = TWO_PI/float(numPoints);
numTurns = 1;
ratio1 = 3;
stroke(255);
noFill();
}
void draw() {
background(#379CED);
translate(width/2, height/2);
rotate(-sin(frameCount * .005));
phi = frameCount * .01;
R1 = 220;
sw1 = 18;
for (int i = 0; i <= 16; i++) {
drawShape(R1, R1/5, ratio1, sw1);
R1 *= .85;
sw1 *= .8;
}
}
void drawShape(float R, float r, float ratio, float sw) {
strokeWeight(sw);
beginShape();
for (float i = 0; i < TWO_PI * numTurns; i += incr) {
float x = R * cos(i) + r * cos(ratio * i - phi);
float y = R * sin(i) + r * sin(ratio * i + phi);
vertex(x, y);
}
endShape();
}