/*********************************************** * Julia3DintGen.c * * Generates a RAW format file of a 3D image * of a Julia set (grayscale) * * C source file by Alberto Strumia * ************************************************/ #include /* defintion of constants */ #define Radius 10 #define Side 2.5 #define Cx 0.9 #define Cy 0.0 #define M 700 #define Num 255 /* main program */ main() { int p, q, n, wext, wint, r[M]; double x, y, xx, yy, Incx, Incy, md; /* fine dichiarazione variabili */ /* gestione file di testo dei dati */ FILE *fp; fp = fopen("Julia.raw","w"); for (p = 1; p <= M; p++) { printf("%i %%\n", p*100/M); Incx = -Side + 2*Side*p/M; for (q = 1; q <= M; q++) { Incy = -Side + Side*(p+q)/M; x = Incx; y = Incy; wext = 0; /* calcolo della velocitˆ di fuga */ for ( n = 1; n <= Num; ++n) { xx = (x*x - y*y)*(x*x - y*y) - 4*x*x*y*y - Cx; yy = 4*x*y*(x*x - y*y) - Cy; x = xx; y = yy; md = x*x + y*y; if ( md > Radius ) { wext = n; n = Num; } else { if ( n <= 5 ) { wint = md*3000; wext = wint; } } r[q] = wext; } } for ( q = 1; q <= M; q++) { fprintf(fp, "%c", r[q] ); } } fclose(fp); } /* end of main program */