begin process at 2012 05 29 11:59:13
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Débutant(e)

 > 

fractale de mandelbrot


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

fractale de mandelbrot

dimanche 1 mai 2011 à 12:09:46 | fractale de mandelbrot

mana

Bonjour,
le programme ci-dessous fonctionne ,
mais quelque soit la précision des calcules(
'float' , 'double' et 'long double' )
le résulta est toujours le même.
Dés que le zoom atteint la valeur de 200000 ,
l'image commence à pixeliser.

J'aimerai savoir pourquoi le calcul ne se fait que sur des 'floats' et ignore les 'doubles'.

J'utilise code blocks v10.05 sous winxp sur un p4 32btis
avec les optimisations o,o1,o2 et o3.
Merci.

void Fractal_Mandelbrot(int image,float mx,float my,float zoom,float op1,float op2){

//mx=201
//my=257
//zoom=200000
//op1=0
//op2=0
//lg=800
//ht=600

image=teste_si_image_existe(image);
if (image==-1)return ;
int *pixel=(int*)mem_eax;
int lg=mem_ebx;
int ht=mem_ecx;

if (mx<0.0)mx=0.0;
if (my<0.0)my=0.0;
if (mx>lg)mx=lg;
if (my>ht)my=ht;
if (zoom<1.0)zoom=1.0;

long double zoomf=double(zoom);
long double mxf=double(mx);
long double myf=double(my);
long double lgf=double(lg);
long double htf=double(ht);

long double pxmin=-(2/zoomf)+(4.0*mxf/lgf)-2.0;
long double pymin=-(2/zoomf)+(4.0*myf/htf)-2.0;
long double pxmax=zoomf/4*lgf;
long double pymax=zoomf/4*htf;

int color,r,g,b;
long double cx,cy,zx,zy,tmp;
for (long double x=0;x<lg;x+=1.0){
for (long double y=0;y<ht;y+=1.0){
if ((op1==0)&&(op2==0)){
cx=(x/pxmax)+pxmin;
cy=(y/pymax)+pymin;
zx=0;
zy=0;
}else{
//zx=(4*x/(zoom*lg))+px;
//zy=(4*y/(zoom*ht))+py;
cx=op1;
cy=op2;
}
color=0;

while ((zx*zx+zy*zy)<4.0 && color<4096){
tmp=zx*zx-zy*zy+cx;
zy=2.0*zx*zy+cy;
zx=tmp;
color++;
}

*(pixel+int(x)+(int(y)*lg))=color*8*0x10000 + color*4*0X100 + color;
}
}
}


Cette discussion est classée dans : long, zoom, double, zx, zy


Répondre à ce message

Sujets en rapport avec ce message

Convertion d'un unsigned long Double en string [ par yves_r ] Bonjour, J'ai besoin de convertir le résultat d'un calcul en string (char *). Si j'utilise sprintf( s, "%Ld", mon_double), j'obtient une chaine long double et VC++ [ par omi ] J'ai un leger probleme avec visual C++ 7.0 .N'y a t'il pas un moyen de lui faire accepter les long double car il les prend pour des double normaux cad Conversion de double en long [ par morphi ] Bonjour,Un petit probleme posé lors du codade ..J'ai un double dvaleur = 1.00000, je le convertie en long par casting :lvaleur=(long)dvaleuret je me r Fonction racine carre puissance et factoriel [ par Samuel0210 ] Bonjour Voila, g creer 3 fonctions pour calculer la racine carre, la puissance et le factoriel de different nombres elles se compile sans erreur mé e Convertion long en double [ par kelsey ] J 'aimerai connaître la méthode permettant de transformer un long en double.Merci Cast de double en long et vice-versa : question pas si triviale [ par BenGourion73 ] Bonjour, Ma question est très simple. je souhaite gérer des nombres entiers mais avec le type double. Le hic, c'est que C++ a une facheuse tendance à Probleme String -> double et long [ par lebalrog ] Salut tout le monde!J'ai un prob urgent a resoudre (tres urgent meme)!je fais :ficin >> ligne;long r=atol(ligne);double a=atof(ligne);avec ligne="0,12 Question de base : convertir long double^ en long double... [ par zebulon88 ] Bonjour,Je cherche à convertir un long double^ en long double :Voici mon code :array^> ^tab = gcnew array^>(Nbel+1);tab[k] = gcnew array( Une classe d'algèbre (calcul matriciel) performante ? [ par Sylphe67 ] Bonjour à tous,En une phrase, je recherche une classe template permettant d'effectuer du calcul matriciel performant sur des matrices carrées de taill Conversion chaine binaire en float, double... [ par renyone ] Bonjour, j'ai une chaine binaire (de 32 bits par exemple) et j'aimerais obtenir le float (ou double...) qu 'elle représente; Y a-t-il des fonctions dé


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,250 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales