De Mandelbrot Fractal
De Mandelbrot-fractal is genoemd naar zijn ondekker Mandelbrot. Het is een figuur, met oneindig veel details, hoe meer je vergroot hoe meer details aan het licht komen. De beelden van de deze fractal zijn beroemd om hun schoonheid.
De fractal is gesteund op de zeer eenvoudige transformatievergelijking:
z i+1= z i2 + c
waarin z en c complexe getallen zijn. Men vertrekt vanuit de oorsprong z= (0,0), en het eerste punt wordt bepaald door de waarden van het beeldpunt c:
   z0 = (0,0) ,    z1 = c,   z2= z12+c,   z3= z22+c, enz...
Men berekent het aantal iteraties die nodig zijn om zich verder dan 2 eenheden van de oorsprong te verwijderen. Het aantal iteraties dat daarvoor nodig zijn, bepaalt de kleur van dat beeldpunt. In bepaalde gebieden (de binnenzijde van het "appelmannetje") wordt deze limiet van 2 nooit bereikt.

Hier het programma Mandel.exe na het opstarten

Broncode
Broncode van een grote versie (600x800 punten)

Als u de eenvoudige complexe formule van Mandelbrot opsplitst in een reeel en imaginair gedeelte (met z = x + jy, en c = a + jb),
worden de formules:
                                        x i+1 = xi * xi - yi * yi + a
                  yi+1 = 2 * xi * yi + b

Het belangrijkste stukje code, dat de kleur berekent, staat hier:

    Teller = 0
    While (X * X + Y * Y < 4) And (Teller < MaxKleuren)
        x1 = X: y1 = Y
        X = x1 * x1 - y1 * y1 + cx
        Y = 2 * x1 * y1 + cy
        Teller = Teller + 1
    Wend

In plaats van de echte afstand kleiner dan 2 te maken, maken we het kwadraat kleiner dan 4. Dit geeft een eenvoudiger en snellere code! De waarde van Teller bepaalt de kleur van de pixel.

En nu passen we de kleur van die pixel aan:

    If Teller = MaxKleuren Then
       'Bij max wordt het zwart
        Picture1.PSet (i, j), RGB(0, 0, 0)
    Else
       'Anders een kleur uit het kleurenpalet
        Picture1.PSet (i, j), Palet(Teller)
    End If

Handleiding van Mandel.exe:
De linker muisknop berekent een nieuwe figuur. De plaats van de muiscursor bepaalt het midden van de nieuwe figuur.
De rechter muisknop geeft een popup-menu, waarmee u de vergrotingsfactor (zoomfactor) en het aantal kleuren kunt instellen.

In de blauwe balk bovenaan vindt u de coordinaten van het middelpunt van de figuur, en de vergroting van het beeld.
Onderaan vindt u in de statusbalk van links naar rechts drie panelen:
    - paneel 1: de lopende coördinaten van de plaats van de muiscursor
    - paneel 2: de zoomfactor als u een nieuw beeld laat berekenen
    - paneel 3: het aantal kleuren, of de rekendiepte.

Tip: Start met 32 kleuren, tot u een interessante plaats vindt, schakel dan over op een hoger aantal kleuren. De rekentijd gaat dan wel evenredig toenemen. Een pentium-processor is zeker nodig om de rekentijd acceptabel te houden. Dit zeer rekenintensief programma is een prima test voor de rekensnelheid van uw processor! Per figuur kunnen tot 300pix  x  200pix  x  512 kleuren = 30.720.000 berekeningen nodig zijn!

Hieonder enkele screenshots:
 


Detail van de "spits" vooraan waarin zich 
ook weer ontelbare mini-mandelbrootjes bevinden...

Nog een uitvergrring uit de spits links


Hier zitten we aan de grens van de rekencapaciteit. De details worden onscherp, meer vergroten heeft geen zin meer.
De breedte van de ganse figuur bedraagt nu meer dan 100x de afstand aarde zon... Maar de details van de figuur gaan nog oneindig veel dieper...

Grote versie:
Er is ook een versie beschikbar met eeb beeldgrootte van 600x800 pixels! Zorg wel dat je minimum een Pentium 3 of 4 processor hebt.... want er moet serieus wat gerekend worden. In de zwarte gebieden, met 1024 kleuren, moet dan 1024*600*800 = 491.520.000  iteraties met verschillende berekeningen worden uitgevoerd per beeld...
De benodigde rekentijd wordt in de caption getoond. Dus je kan het als "benchmark" voor je processorsnelheid gebruiken.
Het beginbeeld werd op deze pc met 1.4Ghz processor berekend in 19 sec.

Broncode grote versie

Hieronder een tweetal schermafdrukken: