Recursion

Basics > Structure > Recursion

final int maxLivello=7;

int x, y;
int raggio;

void setup() 
{
   size(500, 500);
   background(255);
   colorMode(RGB, 1);
   noStroke();
   smooth();
   ellipseMode(RADIUS);
   x=width/2;
   y=height/2;
   raggio=width/2-2;
   noLoop();
}

void draw() 
{
   disegnaCerchio(x, raggio, maxLivello);
}

void disegnaCerchio(int x, int raggio, int livello) 
{                    
   float tono=livello/10.0;
   fill(0.0, tono, tono);
   ellipse(x, y, raggio, raggio);  
  
   if(livello > 1)
   {
	raggio=raggio/2;
	livello--;
	disegnaCerchio(x-raggio, raggio, livello);
	disegnaCerchio(x+raggio, raggio, livello);
   }
}