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()
}