Schildkrötengrafik

Bei Schildkrötengrafik (turtle graphics) wird ein Zeichenstift (die Schildkröte) programmgesteuert über eine Zeichenfläche bewegt. Die Schildkröte schaut in eine bestimmte Richtung und hat unter anderem folgendes Verhalten:

Die initiale Richtung einer Schildkröte ist Osten (rechts).

Das folgende Programm steuert eine Schildkröte so, dass es ein Dreick zeichnet.

SchildkroetenGrafik schildkroetenGrafik = new SchildkroetenGrafik("X", 640, 480);
Schildkroete schildkroete = schildkroetenGrafik.createSchildkroete();

schildkroete.positionieren(300, 100);
schildkroete.laufen(100);
schildkroete.drehen(-135);
schildkroete.laufen(80);
schildkroete.geheZu(300, 100);

schildkroete.warten(); // wartet bis das Fenster geschlossen wird

Die folgenden Aufgaben werden schrittweise schwieriger. Auf eine Einstufung habe ich verzichtet.

Laden Sie sich zum Lösen der Aufgaben die Klassen für die Schildkrötengrafik herunter (UTF-8).

Das Haus vom Nikolaus zeichnen

Dies ist das Haus vom Nikolaus

Lösung

Quadrat zeichnen

Zeichnen Sie ein Quadrat. Verwenden Sie eine Schleife.

Ein Quadrat

Lösung

Kreis zeichnen

Zeichnen Sie mit der Schildkröte einen Kreis. Drehen Sie dabei die Schildkröte immer um ein Grad und gehen einen Schritt nach vorn.

Ein Kreis

Lösung

n-Eck zeichnen

Zeichnen Sie mit der Schildkröte ein n-Eck. Schreiben Sie dazu eine Methode, bei der n als Parameter übergeben wird. Zeichnen Sie ein 3-, 6-, und ein 9-Eck nebeneinander.

Drei n-Ecke nebeneinander (n=3,6,9)

Lösung

Kochkurve zeichnen

Die Kochkurve ist rekursiv definiert. Ausgehend von einer Strecke, wird diese Strecke in vier weiteren Strecken unterteilt. Jede der neuen Strecken hat 1/3 der Länge der ursprünglichen Strecke. Siehe folgende Abbildung:

Ersetzungregel für die Kochkurve

Wenn diese Regel unendlich oft angewendet wird, entsteht folgende eindimensionale Kurve mit unendlicher Länge:

Kochkurve

Implementieren Sie eine rekursive Methode, um mit einer Schildkröte die Kochkurve zu zeichnen. Falls die Kantenlänge kleiner als ein Bildpunkt ist, kann die Rekursion abgebrochen werden.

Nebenbemerkung: Eine Kurve ist in der Mathematik geschlossen. Die Startkonfiguration der Kochkurve ist ein Quadrat. Wird die Regel auf alle Kanten des Quadrats angewendet, dann entsteht eine unendlich lange eindimensionale Kurve.

Lösung

Drachenkurve zeichnen

Auch die Drachenkurve ist rekursiv definiert. Die Drachenkurve 0-ter Ordnung besteht aus einer Strecke. Die Drachenkurve 1-ter Ordnung aus einer Strecke, einer Rechtsdrehung um 90 Grad (der Drehwinkel), und wieder einer Strecke. Die Streckenlänge ist konstant. Die Drachenkurve n-ter Ordnung erhält man wie folgt:

Die Drachenkurve zwölfter Ordnung:

Drachenkurve zwölfter Ordnung

Implementieren Sie eine rekursive Methode, um mit einer Schildkröte die Drachenkurve zu zeichnen. Die gewünschte Ordnung soll dabei als Parameter angegeben werden. Ebenso die Drehrichtung (1, -1). Die Rekursion bricht bei Ordnung 0 ab und zeichnet eine Strecke mit einer festen Längen (z.B. 5).

Lösung