Beispiel 1:
Für die komplexen Zahlen a,b,c,d wählen wir die folgenden Werte:
a = 1 + 0*i
b = 3 + 4*i (beliebig)
c = 0 + 0*i
d = 1 + 0*i
Aus
wir dann z' = z + b, d. h. eine Verschiebung.
Unser Startpunkt (2/1) (z = 2 + 1i, in der Abb. rot) wird 3 nach rechts und 4 nach oben verschoben (Verschiebung in grün).
Mit dem ff. PoVRay-Makro kann man mit verschiedenen Werten experimentieren:
#macro moebius (ax, ay, bx,by,cx, cy, dx, dy, zx, zy,iter) //z'= (az+b)/(cz+d), alle komplex #declare j=1; #while (j<iter+1) #macro produkt (ux, uy, vx,vy) #declare RE=ux*vx-uy*vy; #declare IM=ux*vy+uy*vx; #end //zähler berechnen produkt (ax,ay,zx,zy) #declare obenx=RE+bx; //Verschiebung dazu #declare obeny=IM+by; #undef RE #undef IM //Nenner berechnen produkt (cx,cy,zx,zy) #declare untenx=RE+dx; //Verschiebung dazu #declare unteny=IM+dy; #undef RE #undef IM #declare Radius=0.15; //Startzahl sphere { <zx,zy,0>, Radius pigment{Red*2} no_shadow} cylinder {<0,0,0> <zx,zy,0> 0.05 pigment {Red*2} no_shadow} //algebraische Formel für die Division zweier komplexer Zahlen a+bi und c+di: // a+bi ac+bd bc-ad // ---- = ------- + ------- * i // c+di c*c+d*d c*c+d*d #declare zx_neu=(obenx*untenx+obeny*unteny)/(untenx*untenx+unteny*unteny); #declare zy_neu= (obeny*untenx-obenx*unteny)/(untenx*untenx+unteny*unteny); #declare mitte=<zx_neu,zy_neu,0>; //Startzahl sphere { <zx,zy,0>, Radius pigment{Red*2} no_shadow} cylinder {<0,0,0> <zx,zy,0> 0.025 pigment {Red*2} no_shadow} //möbiustransformiert sphere {mitte, Radius pigment{farbe} no_shadow} cylinder {<0,0,0> mitte 0.025 pigment {farbe*2} no_shadow} //Verschiebungsvektor dazu zeichnen: cylinder {<zx,zy,0> mitte 0.025 pigment {Green*2} no_shadow} #declare zx=zx_neu; #declare zy=zy_neu; #declare j=j+1; #end //end while #undef zx #undef zy #undef zx_neu #undef zy_neu #end // end macro union { //moebius (ax,ay, bx,by, cx,cy, dx,dy, zx,zy, iter) moebius ( 1,0, 3,4, 0,0, 1,0, 2,1, 1) }
Beispiel 2:
Für die komplexen Zahlen a,b,c,d wählen wir die folgenden Werte:
re(a) und im(a) ungleich Null
b = 0 + 0*i (beliebig)
c = 0 + 0*i
d = 1 + 0*i
Aus
erhalten wir dann z' = az, d. h. eine Drehstreckung.
In der ff. Abbildung ist a=-3+4i in grüner Farbe abgebildet, Startzahl rot, az gelb.
Unser Startpunkt (2/1) (z = 2 + 1i, in der Abb. rot) wird mit dem Faktor 5 gestreckt und um den Winkel, den a mit der reellen Achse bildet, gedreht.
Beispiel 3:
Wählt man im 2. Beispiel zusätzlich b von Null verschieden, dann kommt zur Drehstreckung noch eine Verschiebung dazu. Mit dem PoVSkript zur vorherigen Abbildung ist dies leicht durchführbar.
Beispiel 4: Spiegelung an der reellen Achse
Die komplexe Zahl z soll also durch die konjugiert komplexe Zahl ersetzt werden:
zx + zy*i wird zu zx - zy*i
a = 1 + 0*i
b = 0 - 2*zy*i
c = 0 + 0*i
d = 1 + 0*i
Bei dieser Programmierung ist keine Iteration möglich (aber z würde eh nur "hin und her" gespiegelt werden).
Beispiel 5:
Für die Inversion am Einheitskreis (siehe Schaltfläche oben an der Seite) gilt die Abbildungsvorschrift:
Auch sie kann durch eine Möbiustransformation realisiert werdern:
Um die komplexen Zahlen a,b,c und d für
zu bestimmen, betrachten wir das Produkt aus z und der konjugiert komplexen Zahl zu z:
Vergleicht man das Ergebnis mit der Möbiustransformation, hat man sofort die gewünschten Zahlen a bis d:
Rot: z, gelb: z', grün: Einheitskreis
Möglich ist es auch, die Abbildung
mit einer nachfolgenden Spiegelung an der reellen Achse stattdessen zu benutzen.
Im ff. Beispiel wird ein Mittelpunktskreis mit Radius 3 (rot) am Einheitskreis invertiert:
... und für diejenigen, die's mit povray nicht können, hier noch ein geogebra-Applet zur Inversion komplexer Zahlen am Einheitskreis:
|
© 2011 Asti | Links für Unterricht | PoVRay-Site | Mathematische Streiflichter | Algorithmische Kunst | Webdesign |