Scheme Turtle 2

Aus ProgrammingWiki
Archivierte Version vom 2008-12-13T17:48:42+00:00. Aktuelle Version

Beispiele mit Rekursion

Die folgenden Prozeduren für Turtles sind typische Lehrbeispiele für Rekursion. Nebenher werden weitere eingebaute Sprachelemente der Scheme-Turtle-Geometrie eingeführt.

Klassischer Binärbaum mit jeweils halbierter Astlänge

Die jeweils ansetzenden Teilbäume haben gerade die halbe Stammlänge gegenüber ihren Vorgängern. Die Stämme benachbarter Binärbäume bilden einen Winkel von 90 Grad. Außerdem wird die Aststärke der Rekursionstiefe angepasst wird. Wenn eine Stammlänge von 20 Einheiten unterschritten wird, endet die Baum-Verzweigung. <eval> (clear canvas) (move turtle 200 190)</eval>

(define tree

(lambda(side turtle) 
 (cond 
   ((< side 20) #t)
   (else  
     (penwidth turtle (+ (/ side 10) 1 ))    
     (forward turtle side)  
     (left turtle 45)  
     (tree (/ side 2) turtle) 
     (right turtle 90)  
     (tree (/ side 2) turtle)
     (left turtle 45)  
     (backward turtle side)))))

(tree 100 turtle)

Ihr Browser unterstützt Canvas nicht.

Auch wenn wir die Ausgangsposition der Turtle mit home hätten festlegen können, wurden hier exemplarisch Koordinaten (x,y)=(200,190) verwendet. Der Ursprung des Koordinatensystems befindet sich in der linken oberen Ecke. Von dort waagerecht nach rechts verläuft die x-Achse. Die y-Achse zeigt orthogonal dazu nach unten. Die Verwendung von Koordinaten ist also prinzipiell möglich, für die Turtle-Geometrie jedoch untypisch.

Scheme Turtle 3