Scheme Turtle
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>Scheme</language> ==Turtle Geometrie== Die Turtle Geometrie ist aus der Programmiersprache LOGO sehr gut bekannt. Es handelt sich um eine koordinatenfreie Geometrie. Die Idee besteht darin, einen kleinen Zeichenroboter, dargestellt als Schildkröte (Turtle genannt), mit bestimmten Befehlen zu steuern. Da die Turtle am Bauch einen Stift besitzt, kann sie bei ihren Bewegungen eine Spur hinterlassen. Das Schildkrötensymbol lässt die jeweils aktuelle Blickrichtung der Turtle erkennen. Die Vorwärts/Rückwärts-Bewegungen finden in dieser Blickrichtung statt. Diese kann durch Rechts/Links-Drehungen verändert werden. ===Zeichenfläche=== Als erstes benötigen wir eine "Spielwiese", auf der sich unsere Turtle tummeln kann. Das folgende Rechteck zeigt dieses Areal, das auch als Zeichenfläche (Canvas, auch Leinwand) bezeichnet wird. <canvas></canvas> Hinweis für Autoren einer solchen Wiki-Seite: Wenn man nicht die Standardgröße verwendet, kann man mit den Attributen <tt>width</tt> und <tt>height</tt> die Breite und Länge explizit festlegen. In unserem Beispiel wurde <nowiki><canvas width=300 height=200></canvas></nowiki> verwendet. Wir arbeiten jetzt mit dieser Standardgröße weiter. Auf diese Zeichenfläche setzen wir nun eine Turtle. <eval> (clear canvas) (home turtle) </eval> Der Befehl ''home'' setzt die Turtle etwa in die Mitte der Zeichenfläche. Wenn uns die aktuelle Turtle-Position nicht gefällt, bewegen wir die Turtle auf einen anderen Platz. ===Turtle-Bewegungen=== <code hidden>(home turtle)</code> <eval> (forward turtle 50) </eval> lässt die Turtle 50 Schritte vorwärts laufen. Analog gilt dies auch für ''backward'' (rückwärts). Soll keine Spur gezeichnet werden, kann die Turtle den Stift anheben (und später wieder absenken). <code hidden>(clear canvas)(home turtle)</code> <eval> (forward turtle 20) (penup turtle) (forward turtle 20) (pendown turtle) (forward turtle 30) </eval> Da die Zeichenfläche nun den sichtbaren Bereich dieser Seite verlässt, brauchen wir entweder eine neue Wiki-Seite oder auf dieser hier eine neue canvas. Wir nehmen hier den zweiten Weg. <canvas></canvas> Im Evaluationsfenster müssen wir allerdings beachten, dass wir nun <tt>canvas2</tt> ansprechen. Auf canvas2 sitzt turtle2. Allgemein sitzt auf canvas_n turtle_n, wobei n=2,3,4,5. Der Standardfall ist n=1, ohne die 1 zu schreiben. In folgendem Beispiel kommen Drehbewegungen (um einen bestimmten Winkel) und Vorgaben für Linienstärken und deren Farbe hinzu. <eval> (clear canvas2) (home turtle2) (penwidth turtle2 5) (pencolor turtle2 255 0 0) (forward turtle2 50) (right turtle2 90) (pencolor turtle2 255 255 0) (forward turtle2 50) (right turtle2 90) (pencolor turtle2 0 255 0) (forward turtle2 50) (right turtle2 90) (pencolor turtle2 0 0 255) (forward turtle2 50) (hide turtle2) </eval> Am Arbeitsende wird die Turtle versteckt. Mit ''show'' kann die Turtle wieder sichtbar gemacht werden. [[Scheme Turtle 2]]