fractalkitty looking for math? fractalkitty.com

all

dozen

#trig#interactive#animation#accumulates#math#geometry

A dance of the euclidean egg

radeuclideanEgg

let rad = 50;
let n = 12;
let p = true;
let t = 0;
let c = 0;
function setup() {
  createCanvas(windowWidth, windowHeight);

  background(255);
  angleMode(DEGREES);
  strokeWeight(0.1);
  fill(242, 238, 177, 10);
  stroke(100, 90, 10);
}

function draw() {
  translate(width / 2, height / 2);
  scale(0.8, 0.8);
  rad = min(width, height) / 4;
  if (p) {
    c++;
  }
  t = 360 * sin(c / 10) * sin(c / 10);
  fill(252 + 30 * sin(t / 2), 238 + 30 * sin(t), 177 + 30 * sin(t), 10);
  stroke(120, 100, 60);
  for (let i = 0; i < n; i++) {
    push();
    rotate(i * 30 + t);
    translate(i - (width / 4) * cos(t / 5 + i), 0);
    rotate(i * 10 + t);
    euclideanEgg(-t);

    pop();
  }
  rad = max(width, height) / 2;
  euclideanEgg(t);
}
function euclideanEgg(a) {

  beginShape();
  for (let i = -90; i < 90; i++) {
    vertex((rad / 4) * sin(i + a), (rad / 4) * cos(i + a));
  }
  for (let i = 90; i < 135; i++) {
    vertex((rad / 2) * sin(i + a) - rad / 4, (rad / 2) * cos(i + a));
  }
  for (let i = 135; i < 225; i++) {
    vertex(
      (rad / (2 * sqrt(3)) / 2) * sin(i + a),
      (rad / (2 * sqrt(3)) / 2) * cos(i + a) - rad / 4
    );
  }
  for (let i = 225; i < 270; i++) {
    vertex((rad / 2) * sin(i + a) + rad / 4, (rad / 2) * cos(i + a));
  }
  endShape(CLOSE);
}

function mousePressed() {
  p = !p;
}

function windowResized() {
  setup();
  draw();
}