fractalkitty looking for math? fractalkitty.com

Coded Poems

mathober day-19:diagonal

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

img1img2nPolygonspolygonspolygonDraw



let img1, img2;
let nPolygons = 5
let polygons

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

function setup() {
  createCanvas(600, 600);
 nPolygons = int(random(4,40))
  strokeWeight(0.25)
  angleMode(DEGREES);
  stroke(255)
  imageMode(CENTER);
   polygons = []
  for (let i = 0;i<nPolygons;i++){
    tmp = int(random(4,25))
    polygons[i] = createVector(tmp,int(random(2,tmp-2)),(random(2,width/3)));
  }
  noFill()
}

function draw() {

  translate(width / 2, height / 2);
  t1 = frameCount / 25;
  rotate(t1 );
  image(img1, 0, 0, 800, 800);
  for(let i = 0;i<polygons.length;i++){
    push()
    stroke(100+polygons[i].x*5,150+polygons[i].x*10,200+polygons[i].x*12)
    rotate(t1*polygons[i].y/3)
    polygonDraw(i)
    pop()
  }
  
  
}

function polygonDraw(n){
  p = []
  angle = 360/polygons[n].x
  beginShape()
  for(let i = 0;i<=polygons[n].x;i++){
    p[i] = createVector(polygons[n].z*cos(angle*i),polygons[n].z*sin(angle*i));
    
    vertex(p[i].x,p[i].y);
    
  }
  s = floor(polygons[n].x/polygons[n].y)
  for(let i = 0;i<polygons[n].x-polygons[n].y;i++){
    line(p[i].x,p[i].y,p[i+polygons[n].y].x,p[i+polygons[n].y].y)
  }
  endShape()
}

function mousePressed(){
  setup()
  draw()
}