Turtle
Inhaltsverzeichnis |
Wie zeichnet eine Turtle?
Wir stellen uns vor: Eine kleine Schildkröte (engl. turtle) besitzt am Bauch einen Zeichenstift und gehorcht aufs Wort!
Diese Schildkröte kann sich auf einer Spielwiese tummeln, die wir als Zeichenfläche (engl. canvas) bezeichnen.
Da es mehrere "schlaue" Schildkröten und mehrere Spielwiesen gibt, geben wir jeder Schildkröte und jeder Spielwiese eine Nummer.
|
Turtle1 auf Zeichenfläche1: |
Turtle2 auf Zeichenfläche2: |
|
|
Wir wollen die nachfolgenden Anweisungen ausführen und anschließend vergleichen. |
||
|
|
|
|
Vergleichend stellen wir fest:
- Die Darstellungen sind zunächst identisch.
- Gleiche Anweisungen lassen sich in Wiederholungen (Zählschleifen) beliebig oft ausführen.
- Anweisungen können modularisiert, d.h. in Prozeduren unter einem geeigneten Bezeichner (Namen) zusammengfasst werden.
- Prozeduren können Parameter (Platzhalter) haben, die z.B. Objekte in variabler Größe zeichnen lassen.
Turtle-Befehle
Die folgende Tabelle enthält die wesentlichsten Sprachelemente der Turtle-Grafik.
| Syntax | Semantik |
| canvas.clear(); | löscht die Zeichenfläche, |
| turtle.move(<x>,<y>); | positioniert die Turtle in der Zeichenfläche, x ... Spaltenkoordinate, y ... Zeilenkoordinate, |
| turtle.forward(<x>); | lässt die Turtle x Schritte vorwärts gehen, |
| turtle.backward(<x>); | lässt die Turtle x Schritte zurück gehen, |
| turtle.right(<x>); | dreht die Turtle um x Grad nach rechts, |
| turtle.left(<x>); | dreht die Turtle um x Grad nach links, |
| turtle.penDown(); | setzt den Stift ab, so dass Turtle-Bewegungen eine Spur hinterlassen, |
| turtle.penUp(); | hebt den Stift an, so dass Turtle-Bewegungen keine Spur hinterlassen, |
| turtle.penWidth(<x>); | setzt die Breite des Stiftes auf den Wert x, |
| turtle.penColor(<r>,<g>,<b>); | legt den Fabwert des Stiftes fest, mögliche Zahlenwerte für rot (r), grün (g) und blau (b) sind: 0 ... 255, |
| turtle.hide(); | macht die Turtle unsichtbar, |
| turtle.show(); | macht die Turtle sichtbar, |
| turtle.penErase(); | die Turtle löscht eine gezeichnete Linie (wie ein Radiergummi), |
Vom Dreieck zum N-Eck
Ergänze zunächst die Prozedur zum Zeichnen eines gleichseitigen Dreiecks. Verallgemeinere dann die Lösung zur Darstellung regelmäßiger N-Ecke.
|
Gleichseitiges Dreieck: |
Regelmäßiges N-Eck: |
|
|
|
|
Prozeduren rufen Prozeduren auf
In einer Turtlegrafik können komplexe Figuren mit bereits definierten Prozeduren beschrieben werden. So lässt sich ein Haus aus 2 regelmäßigen N-Ecken zusammensetzen. Natürlich muss auch hier die Prozedur n_eck zuvor definiert werden.
|
|
Aufgaben
Die nachfolgenden Aufgaben sollen auch auf einer Turtlegrafik-Seite unter dem eigenen Benutzernamen erstellt werden.
-
Nikolaushaus
Das bekannte Nikolaushaus soll in einem Zug gezeichnet werden, d.h. jede Kante wird dabei genau einmal durchlaufen.
Schreibe eine Prozedur, die das Nikolaushaus in beliebiger Größe zeichnet.
Pentagramm
Rosette