Interaction Design WikiCreative Coding

Ext.Lektionen 2 (Rekursive Funktionen / Fraktale)

Rekursive Funktionen / Fraktale

In diesem Bespiel nutzen wir Rekursive-Funktionen und Zufallszahlen.
Eine Rekursive-Funktion ist eine Funktion die sich selbst wieder aufruft. Die Nutzung von Rekursion kann für verschiedene Probleme verwendet werden, wie z.B.

Bei Rekursionen muss man speziell auf die Abbruchbedingung achten, sonst führt dies schnell zu Endlosschleifen.

void setup()
{
  size(600,600);      // def. fenstergroesse
 
  randomSeed(millis());  // seed random
 
  smooth();           // aktiviere antialiasing
  strokeWeight(5);    // linienbreite
  stroke(0,0,0,150);
 
  noLoop();
}
 
void draw()
{
  background(255);
 
  pushMatrix();
    translate(width *.5,height - 20);
    wurzel(7);
  popMatrix();
}
 
void mousePressed()
{
   redraw();
}
 
// funktion
void wurzel(int tiefe)
{
   if(tiefe <= 0)    // teste ob das ende erreicht worden ist
   {
     // zeichen blueten
     pushStyle();
       int clr = (int)random(100,255);
       stroke(clr,0,0,190);
       fill(clr,0,0,190);
       ellipse(0,0,50,50);
     popStyle();
 
     return;
   }
 
  // zeichne zweige
  int x;
  int y;
  int count = (int)random(1,8);
  for(int i = 0; i < count;i++)
  {
    x = (int)random(-100,100);
    y = -(int)random(10,150);
 
    line(0,0,x,y);
 
    pushMatrix();
      translate(x,y);
      scale(random(.3,.95));
      wurzel(tiefe-1);
     popMatrix();
  }
}

Aufgabe: