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); } } }