fractalkitty looking for math? fractalkitty.com

early works

snubDizzy

#trig#animation#math#geometry#tiling#mathober

polygonanglesnubby

function setup(){
  createCanvas(windowWidth,windowHeight);
  angleMode(DEGREES)
}

function draw(){
  background(0)
  r=width/15
  t=frameCount
  translate(width/2,height/2)
  rotate(t/4)
  push()
  translate(0,height/1.5)
  s2()
  s3()
  push()
  translate(r*1.86,-r/2)
  s3()
  pop()
  push()
  translate(r*2*1.86,-r)
  s3()
  pop()
  pop()
  
  
  
  
}

function polygon(x, y, radius, npoints) {
  let angle = 360 / npoints;
  beginShape();
  for (let a = 0; a < 360; a += angle) {
    let sx = x + cos(a) * radius;
    let sy = y + sin(a) * radius;
    vertex(sx, sy);
  }
  endShape(CLOSE);
}

function snubby(){
  fill(0,150*cos(t),200*cos(t))
  push()
  rotate(t)
  translate(r*sin(t),r*cos(t))
  rect(0,0,r,r)
  pop()
  fill(200,100,0)
  
  triangle(0,0,r,0,r/2,-r*sqrt(3)/2);
  triangle(r,0,r,r,r+r*sqrt(3)/2,r/2);
  triangle(0,r,r,r,r/2,r+r*sqrt(3)/2);
}

function s2(){
  snubby()
  push()
  rotate(150)
  snubby()
  pop()
  push()
  translate(r/2,r+r*sqrt(3)/2)
  rotate(150)
  snubby()
  pop()
  push()
  translate(r+r*sqrt(3)/2,r*sqrt(3)/3.5)
  rotate(60)
  snubby()
  pop()
  push()
  translate(r*sqrt(3)/3.5,-r*sqrt(3)/2)
  rotate(-30)
  snubby()
  pop()
}

function s3(){
  for(let i=1;i<11;i++){
    push()
    translate(-r*i/2,-r*i*1.87)
    s2()
    pop()
  }
}