xxxxxxxxxx
35
let time;
function setup() {
createCanvas(600, 600);
}
function draw() {
time = frameCount*0.01;
osc = abs(sin(time)); //oscillator
background(255, 102, 102);
translate(width / 2, height / 2);
let ellipseSize = 25;
layoutSpheres(3, 10*osc, 150*osc,ellipseSize);
}
//pass in a number, concentrically lay out an ellipse that # of times
function layoutSpheres(count, numellipse, radius,ellipseSize,step) {
for (let i = 1; i <= count; i++) {
let step = i/count;
layoutSphere(numellipse * i, 50 * i,ellipseSize);
rotate(time);
}
}
function layoutSphere(count, scale,ellipseSize,step) {
for (let i = 0; i < count; i++) {
let inc = map(i, 0, count, 0, TWO_PI);
let x = sin(inc*2*osc) * scale;
let y = cos(inc*2) * scale;
let color = map(y,0,600,0,255);
noStroke();
fill(255, 204, 204*osc);
ellipse(x, y, ellipseSize, ellipseSize);
}
}