Zu Beginn des neuen Semesters lassen wir es dementsprechend langsam angehen, und tauchen vorsichtig in die Welt der Rekursionen ein. Um das ganze ein ganz klein wenig spannender zu gestalten, bedienen wir uns der Möglichkeit unter UNIX, geometrische Objekte zeichnen zu können. Hierzu zunächst eine kurze Einführung.
Wir betrachten zwei Module, mit deren Hilfe wir etwas zeichnen und entweder in einem Fenster oder in eine Datei ausgeben können.
Das Modul Plot5Streams bzw. Plotters: Mit dem Modul Plotters kann unter Verwendung eines zweidimensionalen Koordinatensystem direkt gezeichnet werden.
Das Modul TurtleGraphics: Mit diesem Modul kann kann eine Zeichnung in das System von Plotters uebertragen werden. Hierbei kann man sich das ganze folgendermaßen vorstellen:
Maßgebend sind die aktuelle Position und Richtung, in Abhängigkeit davon können alle Zeichenoperationen durchgeführt werden. Hierzu haben wir detaillierte Beispiele im Skript beziehungsweise auf den Manualseiten:
Manualseite zu Plot5Streams
Manualseite zu Plotters
Manualseite zu TurtleGraphics
Außerdem die Beispiele und den bereitgestellten Programmrumpf beachten!
Was nun noch fehlt, ist der eigentlich Algorithmus zum Berechnen der Pflanze, die dargestellt werden soll.
Die Pflanze hat folgende Gestalt (der Algorithmus in Worten beschrieben):
Zunächst ein grader Strich nach oben.
Dann ein Strich nach links, einer nach rechts
Schliesslich zwei Striche senkrecht nach oben
Anschliessend wird jeder Ast nach obigem Muster ersetzt, und zwar bis zur angegebenen Tiefe (siehe Postscript-Dateien zu dieser Aufgabe bzw. die folgenden Abbildungen)
Update: leider war die Aufgabe nicht ganz eindeutig gestellt: wie aus den Bildern hervorgeht, sollten die Stengel (dazu gehoert alles, was nicht am Ende eines Astes ist) in jedem Schritt ihre Groesse verdoppeln.
Das ganze in Bildern (die einzelnen Bilder sind entsprechend verkleinert, das heißt, der Maßstab ist nicht ganz korrekt!) mit den Tiefen 1, 2, 3, 4 und 5:
Lange Rede ... Programmiert also ein kleines Oberon-Programm, dass folgende Punkte berücksichtigt:
Viel Erfolg!