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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146
| int main(){
FILE *fp;
fp=fopen("fractals.txt","w");
int t; ;
printf("Entrer la taille d'image t \n");
scanf("%d",&t); // t = taille du tableau
int image[t][t];
/// image de taille t
float dx; float dy; float xo; float yo;
printf("Entrer l'origine xo et yo \n");
scanf("%f",&xo);
scanf("%f",&yo);
printf("Entrer le pas dx et dy \n");
scanf("%f",&dx);
scanf("%f",&dy);
int i; int j; int c; float Re; float Im; int zmax; int k;
// on déclare les variables
printf("Entrer zmax \n"); // on demande la limite de la serie zmax
scanf("%d",&zmax);
float r[200]; float im[200]; float norme[200];
for (i=0;i<1000;i++) {
// on balaye le tableau en i et en j pour lequel on va siigner un complexe c
for(j=0;j<1000;j++){
Re=i*dx+xo;
Im=j*dy+yo; // on déclare le réel et imaginaire
r[0]=0; im[0]=0;
printf("%f %f \n", Re, Im);
for (k=1; k<=zmax ; k++){
/*z[k]= (Re*Re + 2*Re*Im - Im*Im) + Re + Im;*/
r[k]= r[k-1]*r[k-1] -im[k-1]*im[k-1] + Re;
im[k]= 2*r[k-1]*im[k-1] + Im;
/*if (r[k]*r[k]+im[k]*im[k]>0 ){*/
norme[k]=sqrt(r[k]*r[k]+im[k]*im[k]);
// on test la norme à chaque k;
if ( norme[k] > 2.0 ){
image[i][j]=k;
k=zmax+1;
}
else{
image[i][j]=k; // on test si la serie diverge ou converge
}
}
}
}
/*for (k=0; k<=zmax ; k++){
printf("%f",norme[k]);
}
*/
for (i=0;i<t;i++) {
for(j=0;j<t;j++){
fprintf(fp,"%d ",image[i][j]);
}
fprintf(fp,"\n");
}
fclose(fp);
return 0;
} |
Partager