Informatik Schachtelhalm & Rad des Theodorus?

2 Antworten

Können schon, aber tun wohl kaum.

Allerdings, wenn ich das hinkriegen würde, würde ich dir gern ein fertiges Programm in Malbolge zur Verfügung stellen. Aber leider habe ich gerade keine paar Jahrmillionen übrig für solche Spielereien.

Immerhin sollte der generelle Algorithmus (hier in Pseudocode) bekannt sein:

zeichneFigur(Rekursionstiefe, Startpunkt, Größe, Orientierung)
falls Rekursionstiefe = 0 dann Abbruch

zeichneFigurbasis(Startpunkt, Größe, Orientierung)
Für alle Rekursionsansätze "Rekursionsansatz" aus der Vorlagefigur
aus Rekursionsansatz, Startpunkt, Größe, Orientierung
berechne neuerStartpunkt, neueGröße, neueOrientierung
zeichneFigur(Rekursionstiefe-1, neuerStartpunkt, neueGröße, neueOrientierung)

Die Vorlagefigur ist die Figurbasis (das, was bei jedem Schritt an ggf. anderer Position, in anderer Größe und/oder in anderer Orientierung gezeichnet wird) mit den Rekursionsansätzen

Ein Rekursionsansatz besteht aus den Informationen darüber,
- wo in der Vorlagefigur die nächste Iterationsfigur angesetzt ist (relativer Startpunkt)
- um wie viel die hier angesetzte Iterationsfigur vergrößert/verkleinert wird
- wie die hier angesetzte Iterationsfigur gedreht/gespiegelt wird

(Größe und Orientierung kann man durch eine Transformationsmatrix zusammenfassen)

Man kann noch etwas beschleunigen, indem man die Abbruchbedingung "Rekursionstiefe=0" am Anfang ersetzt durch "Rekursionstiefe <= 1" zwischen Zeichnen der Basis und Berechnung der nächsten Funktionsparameter.