Fraktale Geometrie - Verallgemeinerung
Kopien-Zusammenleg-Algorithmus
Wir entdecken neue Kopiervorschriften
Du hast bereits Erfahrung mit dem Ändern des Initiators gewonnen. Nun wollen wir den Generator, also unsere Vorschrift, wie die Kopien zu verkleinern und zusammen zu legen sind, genauer untersuchen. In den dann folgenden Aufgaben hast du Gelegenheit zum Experimentieren. Du wirst eigene Generatoren entwerfen. Wir fassen dazu unsere bisherigen Erfahrungen zusammen, um sie zu verallgemeinern.
Bei den Experimenten am Kopierer zur Herstellung eines Sierpinski-Dreiecks und eines Teppichs bist du so vorgegangen:
Der Kopien-Zusammenlege-Algorithmus
Du wählst einen Initiator aus (Rechteck, Dreieck, Quadrat, Haus, ...).
Du legst dann den Verkleinerungsfaktor für die Kopien fest.
Dann führst du wiederholt folgende Arbeiten aus:
1. Du stellst dir eine ausreichende Anzahl Kopien her.
2. Du legst die Kopien so zusammen, wie es der Generator vorschreibt.
Bei der Kochkurve hast du diese Vorgehensweise bereits in einem Computerprogramm nachgebildet. Aus diesem Programm blenden wir nun genau die Teile aus, die speziell der Kochkurve dienen. Die versprochene Verallgemeinerung bleibt danach übrig. Das Ergebnis ist ein übersichtliches Programmgerüst für den Kopien-Zusammenlege-Algorithmus.
In dem folgenden Programmgerüst sind alle Programmteile kursiv und fett gedruckt, die für eine spezielle Kopierfolge angepasst werden müssen.
FUNKTION Kopien.zusammenlegen(Stufe)
Grafikfenster.löschen
Stift.anheben
Stift.positionieren (XWert, YWert)
Stift.absenken
Kopie (Stufe, Anfangsgröße)
ENDE FUNKTION Kopien.zusammenlegen
FUNKTION Kopie (Stufe, Größe)
WENN Stufe = 0
DANN Initiator.zeigen (Größe)
SONST Generator (Stufe - 1, Größe / Verkleinerungsfaktor)
ENDE FUNKTION Kopie
FUNKTION Generator (Stufe, Größe) ENDE FUNKTION Generator
FUNKTION Initiator.zeigen (Größe) Hier steht deine neuer Initiator ENDE FUNKTION Initiator.zeigen |
Am Beispiel des Sierpinski-Dreiecks, das du schon kennen gelernt hast, wollen wir die Leerstellen in diesem Gerüst füllen. Zuerst legen wir ein Dreieck als Initiator fest.
|
FUNKTION Initiator.zeigen (Größe) Stift.absenken Dreieck.zeigen (Größe) Stift.anheben ENDE FUNKTION Initiator.zeigen FUNKTION Dreieck.zeigen (Seite) Stift.rechtsdrehen (30) WIEDERHOLE 3 MAL Stift.vorbewegen (Seite) Stift.rechtsdrehen (120) ENDE WIEDERHOLE Stift.linksdrehen(30) ENDE FUNKTION Dreieck.zeigen |
Dem Verkleinerungsfaktor geben wir den Wert 2. Das Dreieck soll eine Anfangsgröße von 256 Einheiten haben. Die Zeichnung beginnt unten links im Grafikfens-ter. Zum Beispiel bei den Werten
|
FUNKTION Generator (Stufe, Größe) Kopie (Stufe, Größe) Stift.vorbewegen (Größe) Stift.linksdrehen (30) Kopie (Stufe, Größe) Stift.zurückbewegen (Größe) Stift.rechtsdrehen (30) Kopie (Stufe, Größe) Stift.vorbewegen (Größe) Stift.rechtsdrehen (90) ENDE FUNKTION Generator |
|
Unser kleiner Film zeigt ausgefüllte Dreiecke. Wenn auch du ausgefüllte Dreiecke verwenden willst, musst du den oben angegebenen Initiator vervollständigen. Dabei hilft dir der Befehl Stift.fülleGebiet.
Verallgemeinerung
Wir möchten dir exemplarisch zeigen, wie du mit Hilfe des Kopien-Zusammenlege-Algorithmus die Peano-Kurven erzeugen kannst.
Die Peano-Kurven der Stufen 0, 1 und 2 sind hier abgebildet:
|
|
|
Der Initiator wird von den Anweisungen
Stift.vorbewegen(Größe)
und
Stift.zurückbewegen(Größe)erzeugt.
Die Peano-Kurve der Stufe 1 ist aus neun gleich langen Strecken zusammen gesetzt. Offensichtlich entspricht jede der Strecken dem Initiator, der um den Faktor drei verkleinert ist. Die Peano-Kurve der Stufe 1 kannst du dir beispielsweise in der Reihenfolge zusammen gesetzt denken, wie es die folgende Abbildung nahe legt.
Wenn wir berücksichtigen, dass der Zeichenstift in die Anfangsposition zurück geführt werden muss, können wir unseren Algorithmus für den Peano-Kurven-Generator aufschreiben.
FUNKTION Generator (Stufe, Größe)
Kopie (Stufe, Größe) KOMMENTAR Initiator Nr 1
Stift.vorbewegen (Größe)
Kopie (Stufe, Größe)) KOMMENTAR Initiator Nr 2
Stift.vorbewegen (Größe)
Stift.linksdrehen (90)
Kopie (Stufe, Größe)) KOMMENTAR Initiator Nr 3
Stift.vorbewegen (Größe)
Stift.linksdrehen (90)
Kopie (Stufe, Größe)) KOMMENTAR Initiator Nr 4
Stift.vorbewegen (Größe)
Stift.linksdrehen (90)
Kopie (Stufe, Größe) KOMMENTAR Initiator Nr 5
Stift.vorbewegen (Größe)
Kopie (Stufe, Größe) KOMMENTAR Initiator Nr 6
Stift.vorbewegen (Größe)
Stift.linksdrehen (90)
Kopie (Stufe, Größe)) KOMMENTAR Initiator Nr 7
Stift.vorbewegen (Größe)
Stift.linksdrehen (90)
Kopie (Stufe, Größe) KOMMENTAR Initiator Nr 8
Stift.vorbewegen (Größe)
Stift.rechtsdrehen (90)
Kopie (Stufe, Größe) KOMMENTAR Initiator Nr 9
Stift.zurückbewegen (2 * Größe)
ENDE FUNKTION Generator
Zusammenfassung
Du hast erlebt, dass wir den Initiator austauschen können, wenn wir das Prinzip
der Allgemeingültigkeit nicht verletzen.
So erhalten wir weitere ästhetische Bilder.
Wesentlich für die Konstruktion neuer Initiatoren ist,
dass der Zeichenstift beim Verlassen der Prozedur
sich in dem selben Zustand befindet wie beim Eintritt in die Prozedur.
Die Prozeduren dürfen also keinen Seiteneffekt erzeugen.