Ensemble de Mandelbrot
Auteur ou autrice : Max Günther.
Mise en ligne le 14 mai 2025
Ce code permet de calculer et visualiser des ensembles de Mandelbrot. MetaPost n’est pas un langage spécialement conçu pour ce type de calculs longs, cependant, il s’en sort étonnament bien ! Ce code a été publié dans l’article : TUGboat, Volume 45 (2024), No. 1, Visualizing the Mandelbrot set with MetaPost.
Code
outputtemplate := "%j.png";
outputformat := "png";
beginfig(1)
numeric x_min, x_max, y_min, y_max, res;
x_min := -2; x_max := 0.5;
y_min := -1.25; y_max := 1.25;
res := 1000;
numeric n_max, dx, dy; n_max := 200;
dx := (x_max - x_min) / res;
dy := (y_max - y_min) / res;
fill (0,0)--(res-1,0)--(res-1,res-1)
--(0,res-1)--cycle;
for x=0 upto res - 1:
for y=0 upto res - 1:
numeric re, im, old_re, old_im, a, b;
re := 0; im := 0;
re_old := 0; im_old := 0;
a := x * dx + x_min;
b := y * dy + y_min;
for n=0 upto n_max:
numeric squared_re, squared_im;
squared_re := re**2;
squared_im := im**2;
re_old := squared_re - squared_im;
im_old := 2.0 * re * im;
re := a + re_old;
im := b + im_old;
if squared_re + squared_im > 4:
numeric c; c := (n_max - n) / n_max;
numeric o; o := 0.95;
fill (x,y)--(x+o,y)--(x+o,y+o)
--(x,y+o)--cycle withpen pencircle
scaled .1pt withcolor (c, c, c);
fi;
exitif squared_re + squared_im > 4;
endfor;
endfor;
endfor;
endfig
end
Mots clés : ensemblesMandelbrotfractalcomplexe
Cet exemple fait partie de la collection d’exemples Figures fractales.