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