fractalkitty looking for math? fractalkitty.com

all

up or down

#trig#animation

pot

n = 8;
function setup() {
  c = 0.95 * min(windowWidth, windowHeight);
  createCanvas(c / 2, c);
  noStroke();
}
function draw() {
  t = frameCount;
  background(200);
  w = c / 15;
  translate(width / 2, height / 2);
  for (let i = 1; i < n; i++) {
    push();
    translate(0, -c / 2 + w / 10 + (i * c) / (n + 1));
    pot();
    pop();
  }
  for (let i = 2; i <= n; i++) {
    push();
    translate(w, -c / 2 + w / 10 + (i * c) / (n + 1));
    scale(1, -1);
    pot();
    pop();
    push();
    translate(-w, -c / 2 + w / 10 + (i * c) / (n + 1));
    scale(1, -1);
    pot();
    pop();
  }
  m = 8;
  for (let i = 0; i < m; i++) {
    circle(
      0,
      -c / 1.5 + ((t + (((4 / 3) * c) / m) * i) % ((4 * c) / 3)),
      w / 2
    );
    circle(w, c / 1.5 - ((t + (((4 / 3) * c) / m) * i) % ((4 * c) / 3)), w / 2);
    circle(
      -w,
      c / 1.5 - ((t + (((4 / 3) * c) / m) * i) % ((4 * c) / 3)),
      w / 2
    );
  }
}
function pot() {
  b = (PI / 9) * sin(t / 100);
  rect(-w / 2, 0, w, w - (w / 2) * sin(b));
  fill(180);
  ellipse(0, 0, w, w / 5 + (w - w / 3) * sin(b));
  fill(255);
  ellipse(0, w - (w / 2) * sin(b), w, w / 5 - (w / 10) * abs(sin(b)));
}