Basics > Structure > Recursion2
int x, y;
int livello=7;
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, y, raggio, livello);
}
void disegnaCerchio(float x, float y, float raggio, int livello)
{
float tono=livello/10.0;
fill(0.0, tono, tono);
ellipse(x, y, raggio, raggio);
if(livello > 1)
{
raggio=raggio/2.0;
livello--;
int num = int(random(4, 6));
for(int i=0; i<num; i++)
{
float a = random(0, TWO_PI);
float nx = x + cos(a)*raggio;
float ny = y + sin(a)*raggio;
disegnaCerchio(nx, ny, raggio, livello);
}
}
}