void setup() { size(200,200); smooth(); } void draw() { background(255); stroke(0); noFill(); drawCircle(width/2,height/2,100); } void drawCircle(int x, int y, int radius) { // base case if (radius <= 2) { ellipse(x,y,radius,radius); } // recursive case else { ellipse(x,y,radius,radius); drawCircle(x+radius/2,y,radius/2); drawCircle(x-radius/2,y,radius/2); drawCircle(x,y+radius/2,radius/2); drawCircle(x,y-radius/2,radius/2); } /* why is the above code equivalent to? ellipse(x,y,radius,radius); if (radius > 2) { drawCircle(x+radius/2,y,radius/2); drawCircle(x-radius/2,y,radius/2); drawCircle(x,y+radius/2,radius/2); drawCircle(x,y-radius/2,radius/2); } */ }