Home Papers Reports Projects Code Fragments Dissertations Presentations Posters Proposals Lectures given Course notes
<< 5. Iterated Function Systems7. Texture Mapping >>

6. Fractals: Julia Sets and the Mandelbröt set

Werner Van Belle1*+ - werner@yellowcouch.org, werner.van.belle@gmail.com
Thomas Unger1+ - thomas.unger@ucd.ie

1- Programming Technology Lab (PROG) Department of Computer Science (DINF) Vrije Universiteit Brussel (VUB); Pleinlaan 2; 1050 Brussel; Belgium
* Corresponding author; + Equal Contribution

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;


Info

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

  1. 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:

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

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.

Solution

#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