Logo: Beispiele
Turtle-Grafik
Bearbeiten- mn_eck
to n_eck :ecken :laenge repeat :seiten [rt 360 / :ecken fd :laenge] end
to mn_eck :ecken :laenge repeat :ecken [rt 360 / :ecken n_eck :ecken :laenge] end
- Zufallslinien
to line make "ll1 [] make "ll2 [] make "x1 ((random 400) - 200) make "y1 ((random 400) - 200) make "x2 ((random 400) - 200) make "y2 ((random 400) - 200) make "ll1 lput :x1 :ll1 make "ll1 lput :y1 :ll1 make "ll2 lput :x2 :ll2 make "ll2 lput :y2 :ll2 make "colr random 8 setpc :colr pu setpos :ll1 pd setpos :ll2 end
to lines repeat 512 [line] end
Fraktale
Bearbeiten- Kock-Kurve und kochsche Schneeflocke
to kurve :stufe :laenge make "stufe :stufe - 1 make "laenge :laenge / 3 if :stufe > 0 [kurve :stufe :laenge rt 60 kurve :stufe :laenge lt 120 kurve :stufe :laenge rt 60 kurve :stufe :laenge] if :stufe = 0 [fd :laenge rt 60 fd :laenge lt 120 fd :laenge rt 60 fd :laenge] end
to flocke :stufe :laenge repeat 3 [kurve :stufe :laenge lt 120] end
- Drachenkurve
to dragon :stufe :laenge dcr :stufe :laenge end
to dcr :stufe :laenge make "stufe :stufe - 1 make "laenge :laenge / 1.41421 if :stufe > 0 [rt 45 dcr :stufe :laenge lt 90 dcl :stufe :laenge rt 45] if :stufe = 0 [rt 45 fd :laenge lt 90 fd :laenge rt 45] end
to dcl :stufe :laenge make "stufe :stufe - 1 make "laenge :laenge / 1.41421 if :stufe > 0 [lt 45 dcr :stufe :laenge rt 90 dcl :stufe :laenge lt 45] if :stufe = 0 [lt 45 fd :laenge rt 90 fd :laenge lt 45] end
- Gosperkurve
to rg :st :ln make "st :st - 1 make "ln :ln / 2.6457 if :st > 0 [rg :st :ln rt 60 gl :st :ln rt 120 gl :st :ln lt 60 rg :st :ln lt 120 rg :st :ln rg :st :ln lt 60 gl :st :ln rt 60] if :st = 0 [fd :ln rt 60 fd :ln rt 120 fd :ln lt 60 fd :ln lt 120 fd :ln fd :ln lt 60 fd :ln rt 60] end
to gl :st :ln make "st :st - 1 make "ln :ln / 2.6457 if :st > 0 [lt 60 rg :st :ln rt 60 gl :st :ln gl :st :ln rt 120 gl :st :ln rt 60 rg :st :ln lt 120 rg :st :ln lt 60 gl :st :ln] if :st = 0 [lt 60 fd :ln rt 60 fd :ln fd :ln rt 120 fd :ln rt 60 fd :ln lt 120 fd :ln lt 60 fd :ln] end
- Pfeilspitze
to pfeilspitze :stufe :laenge rpfeil :stufe :laenge end
to rpfeil :stufe :laenge make "stufe :stufe - 1 make "laenge :laenge / 2 if :stufe > 0 [rt 60 lpfeil :stufe :laenge lt 60 rpfeil :stufe :laenge lt 60 lpfeil :stufe :laenge rt 60] if :stufe = 0 [rt 60 fd :laenge lt 60 fd :laenge lt 60 fd :laenge rt 60] end
to lpfeil :stufe :laenge make "stufe :stufe - 1 make "laenge :laenge / 2 if :stufe > 0 [lt 60 rpfeil :stufe :laenge rt 60 lpfeil :stufe :laenge rt 60 rpfeil :stufe :laenge lt 60] if :stufe = 0 [lt 60 fd :laenge rt 60 fd :laenge rt 60 fd :laenge lt 60] end
- Pentaplexity
to pepl :stufe :laenge make "stufe :stufe - 1 make "laenge :laenge / 2.618 if :stufe > 0 [pepl :stufe :laenge rt 72 pepl :stufe :laenge rt 72 pepl :stufe :laenge rt 180 pepl :stufe :laenge lt 36 pepl :stufe :laenge rt 72 pepl :stufe :laenge] if :stufe = 0 [fd :laenge rt 72 fd :laenge rt 72 fd :laenge rt 180 fd :laenge lt 36 fd :laenge rt 72 fd :laenge] end
to pp :stufe :laenge repeat 4 [pepl :stufe :laenge rt 72] pepl :stufe :laenge end