Im letzten Kapitel haben wir gesehen, dass jeder Punkt eines IFS-Attraktors eine Adresse besitzt – eine (im Zweifel über die top address eindeutig gemachte) unendliche Folge von Abbildungsindizes, die beschreibt, wie der Punkt aus immer feineren Verschachtelungen der Selbstähnlichkeitskopien hervorgeht. Address-Coloring ist die Idee, diese Adresse nicht nur zur geometrischen Konstruktion des Punktes zu nutzen, sondern direkt in eine Farbe zu übersetzen: man definiert eine Abbildung
c : Σ → Farbraum, σ ↦ c(σ)
vom Adressraum in einen Farbraum (etwa RGB oder HSB) und färbt jeden
Punkt x = π(σ) des Attraktors mit der Farbe c(σ) seiner
Adresse. Damit ist Color Stealing – die Übertragung von Farbe aus einem
zweiten IFS oder einem Foto – nur ein Spezialfall: dort wird c
konkret dadurch realisiert, dass dieselbe Adresse in ein zweites,
farbgebendes IFS eingesetzt wird. Address-Coloring im Allgemeinen
verlangt das nicht – die Farbfunktion c kann ebenso gut direkt,
über eine geeignete Funktion, definiert werden.
Da eine unendliche Sequenz im Computer nicht direkt dargestellt werden kann,
nutzt man k Schritte der Generierung (die jüngste Geschichte oder
die historische Abfolge der Funktionsaufrufe), um den Farbton zu bestimmen.
Statt nur zu zählen, wie oft ein Pixel getroffen wurde, schaut man sich an,
welche Funktionen in den letzten Schritten der Rekursion angewendet wurden.
Die ersten Funktions-Nummern einer Adresse bestimmen meist den groben Sektor
oder Hauptast des Fraktals (Makro-Struktur).
Spätere Funktions-Nummern in der Sequenz verfeinern die Farbe, sodass feine Farbnuancen entstehen,
die die Selbstähnlichkeit und die Nachbarschaftsbeziehungen im Codespace widerspiegeln.
Address Coloring macht visuell sichtbar, wie der Codespace auf die Ebene abgebildet wird.
Sprünge in den Farben zeigen auf, wo verschiedene Zweige des IFS zusammenstoßen, was besonders
bei nicht-affinen Systemen (wie Fractal Tops) entscheidend ist, um Überlappungen und die
Topologie des Attraktors zu verstehen.
(Address-Coloring beim Blatt-Attraktor)
Praktisch läuft das beim Chaos-Game-Rendering darauf hinaus, dass man
parallel zum geometrischen Punkt eine laufende Farbe mitführt und sie bei
jedem Schritt ein Stück in Richtung der Basisfarbe der gerade gewählten
Abbildung zieht .
Jeder geometrischen Abbildung fi wird eine Basisfarbe
ki zugeordnet, und die Farbe wird Adressziffer für Adressziffer
rekursiv aufgebaut. Damit Address-Coloring zu zusammenhängenden, erkennbaren Farbregionen
führt und nicht zu Bildrauschen, muss die Farbfunktion c mit der
Topologie des Adressraums verträglich sein: Adressen mit langem
gemeinsamem Präfix – also Punkte aus derselben, tief verschachtelten
Selbstähnlichkeitskopie – müssen auf ähnliche Farben abgebildet werden.
Die rekursive Konstruktion aus dem vorigen Abschnitt garantiert das
automatisch, weil frühe (also in der Präfix-Ordnung erste) Adressziffern das
stärkste, am längsten nachwirkende Gewicht erhalten.
Am besten schauen Sie sich den Programmcode für die
Farbbestimmung an:
Der Faktor 1.0/basis wirkt über pow(faktor,i) auf die Größe des Farbbeitrages für jedes i.
Dieser wird für größere i immer kleiner. Daher ist wie gewünscht eine frühe Adressziffer
von größerer Wirkung als eine späte.
Die Adresstiefe gibt die Anzahl der Funktionsnummern in einer Adresse an. Wie groß
kann sie werden?
Bei einer Adresstiefe von beispielsweise 18 trägt jede Farbe eine Tiefe von 6.
Sinnvoll ist der Wert ja nur, wenn der kleinste Faktor pow(1/3,5) etwas zum Ergebnis beitragen kann.
Mit einem print-Befehl an geeigneter Stelle in obigem Code, kann man dies nachprüfen.
In der folgenden App können Sie Address-Coloring für den Barnsley Farn testen.
| Tasten- oder Mausaktion | Wirkung |
|---|---|
| Taste w | Hintergrund weiß/schwarz |
| Taste 2 | Iterationen verdoppeln |
| Taste i | Farben invertieren |
| Taste t | Adresstiefe 15, 18, 3, 6... |
| Rechts-Klick ins Fenster | An dieser Stelle zoomen |
Address-Coloring liefert also den allgemeinen Rahmen. Color Stealing aus einem Foto ist die naheliegendste und visuell reichhaltigste Ausprägung davon, weil an die Stelle einer einfachen Farb-Rekursion die volle Farbvielfalt eines echten Bildes tritt. Im nächsten Kapitel gehen wir auf genau diesen Schritt ein: wie man die Adresse nutzt, um statt einer berechneten Farbe einen konkreten Bildpunkt eines Fotos auszuwählen.