Introduction
- Cette fractale, découverte par Benoît Mandelbrot dans les anneés
80, présente de nombreuses particularitées. Une des plus intéressantes
est que l'infini compléxité de la géométrie n'est finalement
le résultat que d'un algorithme excessivement simple.
- L'ensemble de Mandelbrot consiste à decrire tous les points d'un
plan complexe dont une transformation (détaillée plus bas) les
fait se contenir dans un cercle de rayon 2.
- Il existe bien des façons de représenter l'ensemble, mais le
plus courant est de faire varier la couleur en fonction du nombre
d'itérations (tests de convergence) nécesssaires pour connaître
l'appartenance d'un point à la "Mandelbrot". Si le point
ne diverge pas au bout d'un grand nombre d'itération, on peut
penser qu'il est alors fort "probable" qu'il fasse partie
de l'ensemble.
- Pour afficher le résultat des calculs, on parcourt l'image en spécifiant
les bornes en abscisse et ordonnée. Pour chaque pixel, on retourne
une couleur dépendant du nombre d'itérations. Par exemple: jaune
pour les petits calculs, bleu pour les grands.
La transformation est la suivante:
zn+1=zn2+c
Les zn et c sont des nombre
complexes.
c représente le point de l'image en cours de calcul.
On calcule donc la suite zn avec
l'initiateur z0 nul . Dès que ||zn||>2
on est sûr de la divergence de la suite, on dessine alors le pixel
avec une couleur en fonction de n.
pour a= -2 à 0.5 -- a et b
représentent les cordonnées du point c du plan --
pour b= -1 à 1
x= 0 -- on
initialise x et y à 0 --
y= 0 --
soit z0=(0,0)
pour i= 0 à imax
tmp= x --
il est indispensable de sauvegarder x avant --
x= x^2-y^2+a
y= 2*tmp*y+b
si (x^2+y^2) < 4
alors -- test et affichage du point s'il y a
lieu --
afficher_point(a,b)
i=imax --
pour sortir de la boucle --
fin si
fin pour
fin pour
fin pour
- Pour générer une "Mandelbrot", il faut donc d'abord
choisir un nombre d'itération maximal en fonction duquel l'allure générale
peut être entièrement modifiée, car les contours sont d'autant
plus rugueux que ce nombre est grand.
- Il y a aussi possibilité de zoomer sur un point intéressant du
plan, par exemple à la frontière de l'ensemble. Les bornes de
l'image sont donc calculées en fonction du facteur de zoom et des
coordonées du point.
- "Mandel" est un programme permettant de générer la
fractale de Mandelbrot, ainsi que des Julia,
dans des fichiers ppm en fonction de certains paramètres.
Pour obtenir une aide au sujet des options, tappez juste le nom de
l'executable.
>mandel
Usage: mandel <fichier.ppm> [options]
|
Options |
|
Defauts |
Valeurs: |
|
-l |
<largeur> |
(250) |
{>0} |
|
-h |
<haureur> |
(250) |
{>0} |
|
-q |
<iterations> |
(35) |
{>=1} |
|
-d |
<rouge> <vert>
<bleu> |
0 0 0 |
{0..255} |
|
-f |
<rouge> <vert> <bleu> |
255 255 255 |
{0..255} |
| Julia |
-j |
<x> <y> |
Mandelbrot |
{-2..2} |
| Centre |
-t |
<x> <y> |
(0,0) |
{-2..2} |
|
-z |
<zoom> |
(1) |
{>0} |
|
-m |
<mode> |
(1) |
{1..4} |
| Curseur |
-c: |
|
inactif |
|
Liens
- les fractales - projet ESSI2
|
Zoom sur la fractale au point (0.65,0.3)
facteur de zoom de 2 a 1000
Bornes:
1.2
-2
2
-1.2
Mandelbrot en (0.4,0.6) en fonction du nombre d'itérations

i=5 |

i=10 |

i=15 |

i=20 |

i=25 |

i=30 |
Exemple d'images

point (-0.745, 0.1) zoomé 1000
fois
Julia
en ce point

même point zoomé 10.000 fois

fractale de Mandelbrot extrudée
|