a a a

Beispiele für rekursive Algorithmen zur Erzeugung von "schönen" Grafiken

binbaum

 void baum(int stufe, double laenge)
{
  t.vor(laenge);
  if (stufe>0)
  { t.drehe(45);
    baum(stufe-1, laenge*0.6);
    t.drehe(-90);
    baum(stufe-1, laenge*0.6);
    t.drehe(45);
  }

// Nach Ablauf der Rekursion wieder zurück zum Ausgangspunkt gehen
   t.stiftHoch();
   t.vor(-laenge);
   t.stiftRunter();
}

farnwedel

 public void baum(int stufe, double laenge)
{
   t.vor(laenge);
   if (stufe>0)
   { t.drehe(-60);
    baum(stufe-1, laenge/2.0);
    t.drehe(50);
    baum(stufe-1, laenge*0.8);
   t.drehe(50);
   baum(stufe-1, laenge/2.0);
   t.drehe(-40);
}
t.stiftHoch();
t.vor(-laenge);
t.stiftRunter();
}


koch

 

void flocke(int stufe, double laenge)
{
   for (int i= 1; i<=3; i++) {
     kurve(stufe,laenge);
   t.drehe(-120);
}
}

void kurve(int stufe, double laenge)
{

if (stufe>1)
{   kurve(stufe-1,laenge/3.0);
   t.drehe(60);
   kurve(stufe-1,laenge/3.0);
   t.drehe(-120);
   kurve(stufe-1,laenge/3.0);
   t.drehe(60);
   kurve(stufe-1,laenge/3.0);
}

else {

  t.vor(laenge);
}
}


pythbaum