Mit dem Instrument der Rekursion können wir am Computer nun eine einfache Pflanze programmieren, deren Aufbau weniger starr als der des Pythagorausbaums ist. Die Grundidee bleibt aber gleich. Innerhalb eines Blocks rufen wir diesen selbst (mehrmals) auf, um ein Objekt zu erzeugen, dass aus vielen Einzelteilen besteht.

Eine mit zufälligen Parametern generierte Pflanze

Um eine solche oder ähnliche Pflanzen zu erzeugen, benötigen wir nur einen einzigen Block, den wir schrittweise selbst schreiben werden.

Block für die Zufallspflanze

Unser Block hat folgende Eingabefelder:

  • ein Feld, um die Rekursionstiefe festzulegen (10),
  • zwei Felder für die x- und y-Koordinaten,
  • die Anfangslänge eines Stängels,
  • die Richtung, in welche die Pflanze wachsen soll und
  • einen maximalen Winkel, von dem die Pflanze beim Wachsen vor der bisherigen Richtung abweichen kann.

Grundlegend soll dieser Block folgendes tun:

  1. Zuerst ein Stück des Stängels zeichnen;
  2. Abhängig von der Iterationstiefe entweder
    1. eine Blüte zeichnen (wenn 1),
    2. oder sich zweimal mit unterschiedlichen Wachstumsrichtungen selbst aufrufen.

Dieser einfache Algorithmus wird als Code geschrieben etwas komplizierter, weil dabei alle Parameter des Blocks an den nächsten Aufruf übergeben werden müssen:

Programmierung der Zufallspflanze

Ganz am Anfang des Blocks sorgen wir dafür, dass keine zu grossen Werte eingegeben werden. Selbst mit der Einschränkung auf 20 Level können schon über 500'000 Blüten gezeichnet werden.

Dann kümmern wir uns um den Stängel. Damit der jeweilige Abschnitt richtig gezeichnet wird, legen wir zuerst dessen Dicke, Farbe und Helligkeit fest. Dann schauen wir, auf welchem Level wir uns befinden. Wenn wir bei 1 sind, wird eine kleine Blüte gezeichnet. Deren Farbe könntest du, falls gewünscht, ebenfalls noch zufällig verändern.

Befinden wir uns auf einem höheren Level sorgen wir zuerst dafür, dass unsere Pflanze weiss, in welche Richtung sie wachsen soll und rufen dann den Block selbst zweimal mit Werten auf, die leicht angepasst werden: Dabei ist vor allem wichtig, dass wir den Level um 1 reduzieren, da sonst das Programm ewig laufen würde.

Wenn du möchtest, kannst du hier auch noch eine if-Bedingung mit einer Zufallsfunktion verwenden. Dann werden nicht mehr alle Zweige der Pflanze gezeichnet, was unter Umständen zu einem echteren Aussehen führen könnte. Probiere es einfach aus.

Ganz am Schluss sorgen wir noch dafür, dass der Zeichenstift wieder von der Zeichenfläche abgehoben wird, damit wir keine unerwünschten Interaktionen mit anderen Befehlen bekommen.

Das Programm selbst kannst du hier aufrufen:  Random Plant. Wenn bei dir ein ganz besonderes Exemplar erblüht, kannst du es in die Galerie "Zufällige Pflanzen" einstellen. Denke dabei daran, die entsprechenden Parameter und allfälligen Anpassungen am Programm zu dokumentieren.

Zuletzt geändert: Mittwoch, 19. Mai 2021, 14:48