Zum Inhalt

Iterierte Funktionensysteme

Iterierte Funktionensysteme (IFS) können verwendet werden, um Fraktalbilder in Cinderella zu erzeugen. Ein iteriertes Funktionensystem benötigt mehrere Transformationen T1, T2, T3, … als Eingabe. Aus diesen Transformationen wird ein Bild wie folgt erzeugt:

Zunächst wählt man einen beliebigen Punkt auf dem Bildschirm als Beginn einer Iteration. Dann wählt man zufällig eine der Transformationen aus und bildet den Punkt ab und zeichnet ihn. Dann verwendet man den resultierenden Punkt der Abbildung, wählt erneut zufällig eine Transformation, bildet den Punkt ab und zeichnet ihn. Diese Operation wird sehr, sehr, sehr oft wiederholt. Auf diese Weise entsteht eine „Punktewolke" auf dem Bildschirm.

Das Erstaunliche an iterierten Funktionensystemen ist, dass diese Punktewolke gleichzeitig selbstähnlich bezüglich aller Transformationen T1, T2, T3, … ist.

Als Beispiel betrachten wir die Situation im folgenden Bild. Dort sind zwei verschiedene Ähnlichkeitstransformationen definiert. Eine bildet Punkt A auf sich selbst und Punkt B auf Punkt C ab. Diese Transformation bewirkt also eine Drehung um A kombiniert mit einer kleinen Kontraktion (zumindest für die Positionen von A, B und C im folgenden Bild). Die zweite Transformation bildet A auf D und B auf E ab. Dies verursacht ebenfalls eine Kontraktionsdrehung mit einem anderen Drehungsmittelpunkt und einer anderen Kontraktionsrate. Das durch diese beiden Transformationen definierte iterierte Funktionensystem ist im folgenden Bild dargestellt.


Ein IFS durch zwei Ähnlichkeitstransformationen

Definition eines IFS

Um ein IFS zu definieren, muss man zunächst mehrere Transformationen auswählen. Dazu wählt man den Verschiebemodus, hält die Umschalt-Taste gedrückt und klickt nacheinander auf die gewünschten Transformationen. Auf diese Weise wird eine Menge von Transformationen ausgewählt. Dann wählt man im Menü „Modi → Spezial" den Modus „IFS". Dann wird automatisch ein IFS hinzugefügt. In unserem Fall ist die erzeugte Punktewolke selbstähnlich bezüglich beider Ähnlichkeitstransformationen.

Verbesserung des IFS

Zugegeben, das bisherige IFS sieht nicht sehr beeindruckend aus. Der Grund dafür ist, dass während der Erzeugung der Punktewolke die beiden Transformationen zufällig mit gleichmäßiger Verteilung gewählt wurden. Die zweite Transformation ist jedoch weitaus kontraktiver als die erste, was dazu führt, dass sich die Punkte in einer Region in der Nähe des Fixpunktes der zweiten Transformation ansammeln. Man kann die „Bedeutung" einer Transformation im Inspector beeinflussen, indem man ihre relative Wahrscheinlichkeit anpasst. Dazu wählt man das IFS durch Shift-Klick im Verschiebemodus und öffnet den Inspector. Im Reiter Erscheinung findet man für jede beteiligte Transformation einen Schieberegler und eine Farbauswahl.


Der IFS-Inspector

Der Schieberegler steuert die relative Wahrscheinlichkeit, mit der die Transformation gewählt wird. Die Farbe steuert die Farbe, die dieser Transformation in der Punktewolke zugeordnet ist. Grob gesagt, Punkte, die durch häufigere Wahl einer Transformation entstehen, haben eher die Farbe dieser Transformation. Die Verringerung der relativen Wahrscheinlichkeit der zweiten (stärker kontraktiven) Transformation hat einen schönen Effekt auf unser Bild. Die erste Ähnlichkeitstransformation (die Drehung um A) wird „wichtiger", und viel mehr der inneren Spirale wird gefüllt.


Eine andere Wahrscheinlichkeitsverteilung

Wenn man keine extrem schnelle und unmittelbare Reaktion auf Mausaktionen benötigt, kann das Bild weiter verbessert werden, indem die Sichtbarkeit des IFS verändert wird. Durch Einstellung der Sichtbarkeit auf einen kleinen Wert erreicht man, dass jeder einzelne Punkt mit einem hohen Transparenzgrad gezeichnet wird. Wenn man lange genug wartet, wird ein Bild erzeugt, das auch auf Subpixel-Ebene eine Struktur aufweist.


Rendern mit niedriger Sichtbarkeit

Änderung von Parametern

IFS sind bemerkenswert reichhaltige Strukturen. Je nach Position der beteiligten Punkte kann das IFS auch für identische Cinderella-Konstruktionen qualitativ sehr unterschiedlich aussehen. Das folgende Bild zeigt zwei verschiedene Parameterwahlen für das IFS des vorherigen Beispiels.

Andere definierende Transformationen können andere (manchmal sehr beeindruckende) visuelle Effekte verursachen. Im folgenden Bild wurde das erste Beispiel durch vier verschiedene affine Transformationen erzeugt. Das zweite Bild wurde durch acht verschiedene symmetrisch gewählte Kreisinversionen erzeugt.


Das Barnsley-Farn

IFS und Transformationsgruppen


Eine Transformationsgruppe …

Iterierte Funktionensysteme sind sehr eng mit dem Cinderella-Konzept der Transformationsgruppen verbunden. Eine Transformationsgruppe ist eine Sammlung von Transformationen, die bei Anwendung auf ein geometrisches Objekt die iterierte Abbildung dieses Objektes unter der Sammlung von Transformationen verursacht. Ein IFS kann als die Limesmenge dieses Iterationsprozesses betrachtet werden (falls sie existiert). Betrachten Sie das Beispiel unten, in dem wiederum zwei Ähnlichkeitstransformationen definiert sind. Im ersten Bild ist das Bild eines Punktes unter der wiederholten Anwendung der Transformationen dargestellt (zusammen mit grünen Segmenten, die die Spuren unter den Abbildungen symbolisieren). Man kann nun leicht ein zugehöriges IFS erstellen, indem man einfach die Transformationsgruppe auswählt (durch Shift-Klick im Verschiebemodus) und dann den IFS-Modus auswählt. Diese Operation führt dazu, dass das entsprechende IFS automatisch erzeugt wird. Das resultierende Bild ist auf der rechten Seite dargestellt.

Vorsicht

Die Struktur des IFS hängt stark von den Eigenschaften der definierenden Transformationen ab. Wenn die Transformationen nicht „kontraktiv" sind, wird man normalerweise keinen vernünftigen Effekt eines IFS sehen, da sich in diesem Fall die Punkte der Wolke sehr schnell an Stellen in der Nähe der „Linie im Unendlichen" ansammeln.

Siehe auch


🤖 Diese Seite wurde automatisch mit KI (Claude) übersetzt und wartet noch auf Überprüfung. → Alle KI-übersetzten Seiten