Bonjour à tous,
J'essaye de construire le fractal de Mandel Brot mais un problème se pose à moi :
Il ne reconnait pas vraiment si le point 'a' est dans l'ensemble ou pas.
Merci d'avance pour votre aide :
main.c :
mandel.c :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 #include <stdio.h> #include <stdlib.h> #include "complex.h" #include "mandel.h" int main() { complex a = {0.25, 0.25}; complex res = add(a, a); print_complex("a + a = ", res); res = mul(a, a); print_complex("a x a = ", res); printf("|a| = %f et |a^2| = %f\n", mod(a), mod(res)); if(is_in_mandelbrot(a)) printf("a est dans Mandelbrot !\n"); else printf("a n'est pas dans Mandelbrot "); if(is_in_mandelbrot(res)) printf("a^2 est dans Mandelbrot !\n"); else printf("a^2 n'est pas dans Mandelbrot"); ///fopen, fputc return 0; }
merci pour votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 #include "mandel.h" #define MAX 100 #define EPS 0.0001 ///return 1 si c est dans l'enssemble de mandelbrot, 0 si non int is_in_mandelbrot(complex c){ /** n <- 0 ///compteur de boucle z <- 0 /// terme courant de la suite complexe calculer faire z_prec <- z z <- z^2 + c n <- n + 1 tant que |z| < 2 et n < MAX et |z - z_prec| > EPS si(|z| >= 2) alors return 0 si |z - z_prec| <= EPS alors return 1 sinon return 1 **/ int n = 0; complex z, z_prec; do { z_prec = z; z = add(mul(z, z), c); n++; } while (mod(z) < 2 && n < MAX && mod(sou(z, z_prec)) > EPS); if(mod(z) >= 2) return 0; else if(mod(sou(z, z_prec)) <= EPS) return 1; else return 1; }
Partager