Home | Papers | Reports | Projects | Code Fragments | Dissertations | Presentations | Posters | Proposals | Lectures given | Course notes |
<< 5. Iterated Function Systems | 7. Texture Mapping >> |
6. Fractals: Julia Sets and the Mandelbröt setWerner Van Belle1*+ - werner@yellowcouch.org, werner.van.belle@gmail.com Abstract : Explains what these two fractals are and shows a naive implementaion
Reference:
Werner Van Belle, Thomas Unger; Fractals: Julia Sets and the Mandelbröt set; |
Laat
.
Beschouw de kwadratische functie
,
dus
.
De vraag die we ons nu stellen is wat er gebeurt als we T itereren ?
De orbit
van een gegeven punt aangaande
een functie T is de rij
Laat
Wat
is dan de orbit van
Dit is de verzameling van punten op de
eenheidscircle in het complexe vlak. Deze verzameling wordt de Julia Set
genoemd van een gegeven functie T.
In
het derde geval is de orbit van een punt volledig gelegen binnen de
juliaset zelf. De julia set is met andere woorden invariant ten
opzichte van De julia set is de grens
tussen punten waarvoor T divergeert en
punten waarvoor T convergeert.
In hetgeen volgt zullen we deJulia set zoeken van de kwadratische functie
waarbij
Oef1: Geinverteerde iteratie
De idee bij
deze methode is al de punten achterwaarts te berekenen
door worteltrekking.
Op
het ogenblik zal
de wortel van
modulus
hebben.
Dit geeft:
.
Anderzijds
als
hebben we
.
We zien dat in beide gevallen
dichter bij 1 ligt dan r, dus dat afrondfouten langzaam maar zeker
verdwijnen.
De Inverse iteratie methode:
begin bij een gegeven punt
bereken de pre-image van
Bereken de pre-image van alle punten van P(z) en ga zo verder.
Pas
deze methode toe op voor
een gegeven c.
Laat
in poolcoordinaten zijn. We hebben dan
waarbij en
Oef2: Escape Time Algoritme
Zoals beschreven is de juliaset de grens tussen al de punten die convergeren en al de punten die divergeren. We kunnen hiervan gebruik maken en voor al de punten die we willen tekenen checken of het punt buiten een bepaalde region valt of niet na een aantal iteraties. Implementeer dit algoritme. Neem 255 iteraties en als region het vlakje (-2,-2) tot (2,2)1
Oef 3: De mandelbrot set
In hetgeen volgt noteren we de julia
set van een gegeven functie als
Voor elke is
ofwel
een grote brok, dus wiskundig geconnecteerd
ofwel een mist, dus wiskundig omschreven als totaal gedisconnecteerd
De Mandelbrot set is de verzameling van
alle coordinaten waarvoor
geconnecteerd is.
Een alternatieve definitie voor de Mandelbrot set is de volgende
De manderlbrot
set M is de
verzameling van al de c-waarden waarvoor de kritieke orbit van (de
orbit te vertrekken van 0), niet divergeert.
Men kan het volgende bewijzen:
Fact: Als
Oef: Teken de Mandelbrot set.
#include <vga.h> #include <math.h> static float cx=0, cy=0; float zcx,zcy,r,phi; float Fx(float sign, float x, float y) { zcx=(x-cx); zcy=(y-cy); r=sqrt(zcx*zcx+zcy*zcy); phi=atan2(zcy,zcx); return sign*cos(phi/2)*sqrt(r); } float Fy(float sign, float x, float y) { zcx=(x-cx); zcy=(y-cy); r=sqrt(zcx*zcx+zcy*zcy); phi=atan2(zcy,zcx); return sign*sin(phi/2)*sqrt(r); } void drawifs(float x, float y,int d) { if (d>0) { drawifs(Fx(-1,x,y),Fy(-1,x,y),d-1); drawifs(Fx(1,x,y),Fy(1,x,y),d-1); } else vga_drawpixel((x+2)*0,(y+2)*0); } void main(void) { int i; float s; vga_setmode(G640x480x16); for(s=0;i<2*PI;s+=0.5) { vga_setmode(G640x480x16); cx=cos(s); cy=sin(s); drawifs(1,0,5); } sleep(0); }
1 Door gebruik te maken van hoe ‘snel’ een punt buiten de regio gecatapulteerd wordt kunen we gekleurde julia sets tekenen.
http://werner.yellowcouch.org/ werner@yellowcouch.org | ![]() |