Bonjour !
voila depuis que j'ai découvert les irréels et les fractales (enfin savoir vraiment comment ca se formait, avec les irréels) j'ai voulu essayer de dessiner en programmant l'ensemble de mandelbrot .
J'arrive a un résultat ... différent ^^.
je vous met les deux fonctions principales, sans le main il sert a rien !^^
désolé pour le peu de commentaires, si vous ne comprenez pas mon code dite le moi
et à la fin je post l'image que j'ai en exécutant ce code .
void dessinerEnsemble(SDL_Surface * ecran)
{
double xz=0,yz=0; // partie reelle et imaginaire de Zn
Uint32 noir = SDL_MapRGB(ecran->format,0,0,0);//couleur
Uint32 blanc = SDL_MapRGB(ecran->format,255,255,255);
SDL_Rect pos;//position du pixel a colorier
SDL_Surface * point = SDL_CreateRGBSurface(SDL_HWSURFACE,1,1,32,0,0,0,0); // pixel qu'on collera (blit)
for(int i = 0; i <= 600; i++)
{
for (int u = 0; u <= 1200 ; u++)
{
//calculs des valeurs de xz et yz ==> z = xz + i.yz
xz = -2 + (u * 0.0025);// 0.0025, c'est le pas horizontal
yz = 1.5 - (i * 0.005);//pas vertical , le graph fait sur Ox [-2,1], et Oy [1.5,-1.5]
pos.x = u;
pos.y = i;
if(calculerModule(xz,yz))
{
SDL_FillRect(point,NULL,noir);
SDL_BlitSurface(point,NULL,ecran,&pos);
SDL_Flip(ecran);
}
else
{
SDL_FillRect(point,NULL,blanc);
SDL_BlitSurface(point,NULL,ecran,&pos);
SDL_Flip(ecran);
}
}
}
}
bool calculerModule(const double xz,const double yz)
{
double x1 = xz,y1 = yz;
double resultat = 0;
bool Bnoir = false;
for (int o = 0; o < 150 ; o++)
{
x1 = x1*x1 - y1*y1 + xz;
y1 = 2*x1*y1 + yz;
resultat = sqrt((x1*x1) + (y1*y1));
if(resultat > 2)
{
Bnoir = false;
return Bnoir;
}
}
Bnoir = true;
return Bnoir;
}
Merci d'avance si vous trouvez ce qui ne va pas ! je cherche depuis quelques jours et je sais vraiment pas qu'est ce qui pourrait etre la cause de cette ... forme ! ^^
Nico
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :