Skip to content

Pulsing cycloids

A pulsing circle of cycloids

function setup() {
  createCanvas(400, 400);
}

function draw() {
  background(220);
  strokeWeight(3)
  beginShape(POINTS)
  let t = millis() / 900
  let r = 1/4
  let r2 = 1/8
  for (let i = 0; i < 4 * PI; i += 2 * PI / 100) {
    let a = t * 1.1 + i*-3.5
    let a2 = t * -3.5 + i * 1.5
    vertex(200 + (cos(i) * (1-r)) * 200, 200 + (sin(i) * (1-r)) * 200)
    vertex(200 + (cos(i) * (1-r) + cos(a) * r) * 200, 200 + (sin(i) * (1-r) + sin(a) * r) * 200)
    vertex(200 + (cos(i) * (1-r-r2) + cos(a) * (r-r2) + cos(a2) * r2) * 200,
           200 + (sin(i) * (1-r-r2) + sin(a) * (r-r2) + sin(a2) * r2) * 200)
    
  }
  endShape(CLOSE)
}

(Originally seen at https://editor.p5js.org/bojidar-bg/sketches/cK2HaI15L)

Experiments tagged p5 (75/85)

Experiments on this site (75/85)