fractalkitty looking for math? fractalkitty.com

100 days of code

treskelionChurn

#trig#animation#math#spiral#symmetry

dSpiraltreskeliongroupP

function setup(){
  createCanvas(720,720);
  angleMode(DEGREES);
  noFill();
  background(0)
}
function draw(){
  background(40,40,40,25);
  translate(width/2,height/2);
  scale(1/2.5,1/2.5)
  noStroke();
  for(let i=0;i<3;i++){
     push()
  translate(140*sin(frameCount+i*120),140*cos(frameCount+i*120))
  rotate(frameCount)
  groupP()
  pop()
  }   
}

function dSpiral(a,b){
  beginShape()
  for(let i=0;i<795;i++){
    x=(b*i)*sin(i)
    y=(b*i)*cos(i)
    vertex(x/10,y/10)
  }
  for(let i=960;i>0;i--){
    x=b*i*sin(i+180)
    y=b*i*cos(i+180)
    vertex(x/10,y/10)
  }  
  endShape(OPEN)
}
function treskelion(){
  p=-70
  push()
  translate(p,p)
  dSpiral(1,1)
  pop()
  push()
  rotate(120)
  translate(p,p)
  dSpiral(1,1)
  pop()
  push()
  rotate(240)
  translate(p,p)
  dSpiral(1,1)
  pop()
}
function groupP(){//clean up with loops
  fill(0)
  treskelion();
  push()
  fill(0,200,200)
  rotate(60);
  translate(140,140)
  treskelion();
  fill(0)
  push()
  rotate(60);
  translate(140,140)
  treskelion();
  pop()
  push()
  rotate(-60);
  translate(140,140)
  treskelion();
  pop()
  push()
  fill(0,200,200)
  rotate(60);
  translate(140,140)
  fill(0,200,200)
  push()
  rotate(60);
  translate(140,140)
  treskelion();
  pop()
  push()
  rotate(-60);
  translate(140,140)
  treskelion();
  pop()
  pop()
  pop()
  push()
  fill(0,200,200)
  rotate(-60);
  translate(140,140)
  treskelion();
  fill(0)
  push()
  rotate(60);
  translate(140,140)
  treskelion();
  pop()
  push()
  rotate(-60);
  translate(140,140)
  treskelion();
  pop()
  push()
  fill(0,200,200)
  rotate(60);
  translate(140,140)
  fill(0,200,200)
  push()
  rotate(60);
  translate(140,140)
  treskelion();
  pop()
  push()
  rotate(-60);
  translate(140,140)
  treskelion();
  pop()
  pop()
  pop()
  push()
  fill(0,200,200)
  rotate(180);
  translate(140,140)
  treskelion();
  fill(0)
  push()
  rotate(60);
  translate(140,140)
  treskelion();
  pop()
  push()
  rotate(-60);
  translate(140,140)
  treskelion();
  pop()
  push()
  fill(0,200,200)
  rotate(60);
  translate(140,140)
  fill(0,200,200)
  push()
  rotate(60);
  translate(140,140)
  treskelion();
  pop()
  push()
  rotate(-60);
  translate(140,140)
  treskelion();
  pop()
  pop()
  pop()
}