FAQ
 
 
Cover  \ Exhibition  \ Learning  \ Reference  \ Download  \ Discourse   
    Examples \ Tutorials \ Courses & Workshops
 
   
 
 
Examples for Processing (BETA) version 91+. If you have a previous version, use the examples included with your software. If you see any errors or have comments, please let us know.



Recursion
by REAS <http://reas.com>

A demonstration of recursion, which means functions call themselves. Notice how the drawCircle() function calls itself at the end of its block. It continues to do this until the variable "level" is equal to 1.

Updated 26 October 2004

   
// Recursion 
// by REAS <http://reas.com> 

void setup() 
{ 
  size(200, 200); 
  noStroke(); 
  smooth(); 
  noLoop(); 
} 
 
void draw() 
{ 
  drawCircle(126, 170, 6); 
} 
 
void drawCircle(int x, int radius, int level) 
{                    
  float tt = 126 * level/4.0; 
  fill(tt); 
  ellipse(x, 100, radius*2, radius*2);      
  if(level > 1) { 
    level = level - 1; 
    drawCircle(x - radius/2, radius/2, level); 
    drawCircle(x + radius/2, radius/2, level); 
  } 
} 
 







   
  Processing is an open project initiated by Ben Fry and Casey Reas  
  © Info