Scheme Turtle 4

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>SchemeJS</language>
===Nichtbinär-Baum===

Natürlich kann man den Baum, den eine (oder mehrere geklonte) Turtle(s) zeichnen soll(en), auch ganz anders definieren. Die folgende Prozedur zeigt ein Beispiel für eine alternative Verzweigungsvariante. Am ''rekursiven'' Charakter der Beschreibung des Zeichenobjekts kann man trotzdem unverändert festhalten.

{|width="100%"
|-valign="top"
|width=500|<canvas width=500 height=300></canvas>||<code id="4b4068b49f2bf">
(define tree
 (lambda(side winkel) 
  (cond [(< side 20) #t] 
        [else  
          (penwidth turtle (+ (/ side 10) 1 ))    
          (forward turtle side)  
          (left turtle winkel)  
          (tree (/ side 2) winkel)  
          (left turtle winkel)  
          (tree (/ side 2) winkel)  
          (right turtle (* 4 winkel))  
          (tree (/ side 2) winkel)  
          (left turtle winkel)  
          (tree (/ side 2) winkel)  
          (left turtle winkel)  
          (backward turtle side)])))

</code>
<run id="4ae30126a3ec6">
(clear canvas)
(move turtle 200 190)
(tree 100 25)</run>
|}

[[Scheme Turtle 5]]