int cnt; float angle,sizeMod; void setup() { size(400,400); background(100,160,200); smooth(); ellipseMode(CENTER_DIAMETER); noStroke(); } void loop() { background(100,160,200); translate(width/2,height/2); angle=(float)mouseX/(float)width; sizeMod=(float)mouseY/(float)height+0.1; for(int i=0; i<18; i++) { push(); if(i%3==0) fill(50,80,160); else if(i%3==1) fill(200,170,0); else fill(200,255,0); rotate(angle*(i+1)*PI/2); translate(i*10+30,0); drawCircle(0,0,i); pop(); } cnt++; } void drawCircle(float x,float y,float id) { float rad=(id+1)*10*sizeMod; push(); translate(x,y); ellipse(0,0, rad,rad); rotate(radians(137.5*id+cnt)); for(int i=0; i<5; i++) { ellipse(rad/2,0, rad/5,rad/5); rotate(2*PI/5); } pop(); }