@@ -21,33 +21,38 @@ déf min_orbitrap(a, b):
2121déf mandelbrot_piege_cercle(cx, cy, max_iter):
2222 # Piège : cercle unité |z| = 1
2323 # La distance minimale à ce cercle code la couleur.
24+ # Note : on mesure z_1, z_2, ... (pas z_0=0 )
2425 soit x = 0.0
2526 soit y = 0.0
2627 soit iter = 0.0
2728 soit dist_min = 1000000.0
2829 tantque iter < max_iter:
30+ soit xtemp = x * x - y * y + cx
31+ y = 2.0 * x * y + cy
32+ x = xtemp
2933 si x * x + y * y > 16.0 :
3034 soit valeur = max_iter / (1.0 + dist_min * 18.0 )
3135 retour min_orbitrap(valeur, max_iter * 0.98 )
3236 # Distance au cercle |z| = 1 : | |z|² - 1 |
3337 soit d = abs_orbitrap(x * x + y * y - 1.0 )
3438 si d < dist_min:
3539 dist_min = d
36- soit xtemp = x * x - y * y + cx
37- y = 2.0 * x * y + cy
38- x = xtemp
3940 iter = iter + 1.0
4041 soit valeur = max_iter / (1.0 + dist_min * 18.0 )
4142 retour min_orbitrap(valeur, max_iter * 0.98 )
4243
4344déf mandelbrot_piege_croix(cx, cy, max_iter):
4445 # Piège : axes (droites x=0 et y=0 )
4546 # Couleur = distance minimale aux axes
47+ # Note : on mesure z_1, z_2, ... (pas z_0=0 qui serait sur les axes)
4648 soit x = 0.0
4749 soit y = 0.0
4850 soit iter = 0.0
4951 soit dist_min = 1000000.0
5052 tantque iter < max_iter:
53+ soit xtemp = x * x - y * y + cx
54+ y = 2.0 * x * y + cy
55+ x = xtemp
5156 si x * x + y * y > 16.0 :
5257 soit valeur = max_iter / (1.0 + dist_min * 22.0 )
5358 retour min_orbitrap(valeur, max_iter * 0.98 )
@@ -56,31 +61,29 @@ déf mandelbrot_piege_croix(cx, cy, max_iter):
5661 soit d = min_orbitrap(dx, dy)
5762 si d < dist_min:
5863 dist_min = d
59- soit xtemp = x * x - y * y + cx
60- y = 2.0 * x * y + cy
61- x = xtemp
6264 iter = iter + 1.0
6365 soit valeur = max_iter / (1.0 + dist_min * 22.0 )
6466 retour min_orbitrap(valeur, max_iter * 0.98 )
6567
6668déf mandelbrot_piege_ligne(cx, cy, max_iter):
6769 # Piège : droite diagonale y = x
6870 # Distance = |x - y| / sqrt(2 )
71+ # Note : on mesure z_1, z_2, ... (pas z_0=0 qui serait sur la diagonale)
6972 soit inv_racine2 = 0.70710678118654752
7073 soit x = 0.0
7174 soit y = 0.0
7275 soit iter = 0.0
7376 soit dist_min = 1000000.0
7477 tantque iter < max_iter:
78+ soit xtemp = x * x - y * y + cx
79+ y = 2.0 * x * y + cy
80+ x = xtemp
7581 si x * x + y * y > 16.0 :
7682 soit valeur = max_iter / (1.0 + dist_min * 20.0 )
7783 retour min_orbitrap(valeur, max_iter * 0.98 )
7884 soit d = abs_orbitrap(x - y) * inv_racine2
7985 si d < dist_min:
8086 dist_min = d
81- soit xtemp = x * x - y * y + cx
82- y = 2.0 * x * y + cy
83- x = xtemp
8487 iter = iter + 1.0
8588 soit valeur = max_iter / (1.0 + dist_min * 20.0 )
8689 retour min_orbitrap(valeur, max_iter * 0.98 )
0 commit comments