Affine Abbildungen - Berechnung

Wie die affine Abbildung eines Punktes oder auch eines Objektes praktisch erfolgt wurde mir bei einigen Beispielen mit konkreten Zahlen erst so richtig klar. Das aufzuschreiben ist vielleicht ganz hilfreich, wenn ich später dazu etwas programmieren will.

Ausgehend von den bereits beschriebenen Gleichungen

IFS_F
IFS_F1
IFS_F2

soll zunächst nur die Translation (Verschiebung) eines Punktes um einen Vektor

betrachtet werden, also

IFS_F6
IFS_F7

Da bei der Matrizenmultiplikation die Ursprungskoordinaten erhalten bleiben sollen, muss es sich bei der Abbildungsmatrix um die Einheitsmatrix handeln. Somit erhält man:

IFS_F8

ein Zahlenbeispiel :

Für die Verschiebung eines Punktes A mit den Koordinaten A (3,6) um den Vektor

ergibt sich

IFS_F10
IFS_F9

Die Koordinaten des Punktes A’ lauten also A’ (5,10)

Als zweites Beispiel soll eine Skalierung betrachtet werden.

Eine Skalierung ws ist eine Größenänderung eines Objektes, z.B. eines Dreiecks. Dabei kann dies in x- und bzw. oder in y-Richtung geschehen. Ein Objekt wird skaliert, indem man eine affine Abbildung der Form

IFS_F11

verwendet. Dabei skalieren der Faktor a in x-Richtung und der Faktor b in y-Richtung. Der Verschiebungsvektor wurde der Übersichtlichkeit wegen weggelassen.

Sollen zum Beispiel die Koordinaten A (0,1), B (0,0) und C (1,0) eines Dreieck auf die Hälfte skaliert werden so lautet die Gleichung für die affine Abbildung

IFS_F12

und es resultieren für das skalierte Dreieck die Koordinaten A’ (0,0.5), B’ (0,0) und C’ (0.5,0).

Für das Sierpinski-Dreieck benötigt man drei Funktionen w1, w2 und w3 der Form

IFS_F1

und zwar eine für die Skalierung und jeweils eine für die zwei Verschiebungen des verkleinerten Dreiecks.

Eine Zufallszahl p entscheidet welche der 3 Funktionen angewendet wird. Dabei ist für das Sierpinski-Dreieck die Wahrscheinlichkeit für die Anwendung jeder Funktion identisch.  Die Koeffizienten der Funktionen und die Wahrscheinlichkeiten lassen sich einfacher in einer Tabelle darstellen.

w

a

b

c

d

v

t

p

1

0.5

0.0

0.0

0.5

0.00

0.00

1/3

2

0.5

0.0

0.0

0.5

0.25

0.50

1/3

3

0.5

0.0

0.0

0.5

0.50

0.00

1/3

Die Berechnung des Bildes ist dann eigentlich ganz einfach. Zuerst wird ein Startpunkt P0(x,y) festgelegt. Dann wird eine der 3 Funktionen ausgewählt und angewendet, man erhält den Punkt P1(x,y) und zeichnet ihn. Dann wählt man wieder zufällig eine der 3 Funktionen aus, wendet sie auf den Punkt P1(x,y) an und erhält den Punkt P2(x,y) und zeichnet ihn.
Diesen Vorgang wiederholt man viele Male und es  entsteht das Bild.

Da das so schön Schritt für Schritt gemacht werden kann liegt es doch nahe, das zu programmieren. Punkt für Punkt zu berechnen, zu zeichnen und zu sehen, wie das Bild entsteht. Die Parameter kann man dann leicht ändern und eventuell auch noch mit einer vierten Funktion ergänzen. Ich werde mich daranmachen um zu sehen welche IFS-Fraktale entstehen.

[Home] [FAQ] [A - E] [A 1]