function w(v){ return width *v; } function h(v){ return width * v; } function setup(){ var myCanvas = createCanvas(windowWidth,windowHeight); //you must keep this line unmodified } function inner_circle(x,y,v,s,d){ push() stroke(v*1239%360,v*5555%360,v*9129%360) fill(v*1239%360,v*5555%360,v*9129%360) translate(x,y) xx = d*sin(s*3)*w(v) yy = d*cos(s*3)*h(v) ellipse(xx,yy,w(v),h(v)) line(0,0,xx,yy) if(v/2 > 0.01){ inner_circle(xx,yy,v*.9,s*1.1,d) } pop() } function draw() { background(0,5) fill(0) strokeWeight(4) translate(width/2,height/2) stroke(255,0,0) s = frameCount/100 x = sin(s)*w(0.4) y = cos(s)*h(0.4) ellipse(x,y,w(0.4),h(0.4)) stroke(255,255,0) inner_circle(x,y,0.2,s,1) inner_circle(x,y,0.2,s,-1) nx = -sin(s)*w(0.4) ny = -cos(s)*h(0.4) ellipse(nx,ny,w(0.4),h(0.4)) stroke(255,255,0) inner_circle(nx,ny,0.2,s,1) inner_circle(nx,ny,0.2,s,-1) }