fractalkitty looking for math? fractalkitty.com

Coded Poems

mathober day-17: Excision

#random#trig#vectors#image#animation#accumulates#poem#mathober

img1img2starsdrawStars


let img1, img2;
let stars

function preload() {
  img1 = loadImage("/assets/excision.jpg");
  img2 = loadImage("/assets/star.png");
}

function setup() {
  createCanvas(600, 600);
 
  angleMode(DEGREES);
  stroke(255)
  imageMode(CENTER);
   stars = []
  for (let i = 0;i<200;i++){
    stars[i] = createVector(random(-width/1.5,width/1.5),random(-width/1.5,width/1.5),randomGaussian(5,10))
  }
}

function draw() {

  translate(width / 2, height / 2);
  t1 = frameCount / 25;
  rotate(t1 );
  image(img1, 0, 0, 800, 800);
  push()
  rotate(t1*1.5)
  drawStars()
  pop()
  r = 100
  x1 = r*sin(-t1+ 15*abs(sin(t1)))
  y1=r*cos(-t1+ 15*abs(sin(t1)))
  image(img2,x1,y1,40,40)
  x2 = r*sin(-t1-90- 15*abs(sin(t1)))
  y2=r*cos(-t1-90- 15*abs(sin(t1)))
  image(img2,x2,y2,40,40)
  line(x1,y1,x2,y2)
  x3 = r*sin(-t1-180- 45*abs(sin(t1)))
  y3=r*cos(-t1-180-45*abs(sin(t1)))
  image(img2,x3,y3,40,40)
  line(x3,y3,x2,y2)
  x4 = r*sin(-t1+90+ 45*abs(sin(t1)))
  y4=r*cos(-t1+90+ 45*abs(sin(t1)))
  image(img2,x4,y4,40,40)
  line(x3,y3,x4,y4)
  line(x1,y1,x4,y4)
  
    r = 200
  x5 = r*sin(-t1+ 15*abs(sin(t1)))
  y5=r*cos(-t1+ 15*abs(sin(t1)))
  image(img2,x5,y5,40,40)
  x6 = r*sin(-t1-90- 15*abs(sin(t1)))
  y6=r*cos(-t1-90- 15*abs(sin(t1)))
  image(img2,x6,y6,40,40)
  line(x6,y6,x5,y5)
  x7 = r*sin(-t1-180- 45*abs(sin(t1)))
  y7=r*cos(-t1-180- 45*abs(sin(t1)))
  image(img2,x7,y7,40,40)
  line(x6,y6,x7,y7)
  x8 = r*sin(-t1+90+ 45*abs(sin(t1)))
  y8=r*cos(-t1+90+ 45*abs(sin(t1)))
  image(img2,x8,y8,40,40)
  line(x7,y7,x8,y8)
  line(x5,y5,x8,y8)
  line(x1,y1,x5,y5)
  line(x2,y2,x6,y6)
  line(x3,y3,x7,y7)
  line(x4,y4,x8,y8)
  
}

function drawStars(){
  
  for(let i = 0;i<stars.length;i++){
   
    image(img2,stars[i].x,stars[i].y,stars[i].z,stars[i].z)
  }
}