/*********************************************** * Mand3DlandGen.c * * Generates a RAW format file of a 3D image * of Mandelbrot set (grayscale) * * C source file by Alberto Strumia * ************************************************/ #include /* definition of constants */ #define Radius 10 #define Side 2.5 #define Cx 0.0 #define Cy 0.0 #define M 700 #define Num 255 #define height Num/4 /* main program */ main() { int p, q, n, w, r[M+height]; double x, y, xx, yy, Incx, Incy; FILE *fp; fp = fopen("Mand.raw","w"); for (p = 1; p <= M; p++) { printf("%i %%\n", p*100/M); for (q = 1; q <= M; q++) { Incx = Cx - Side + 4*Side*(p+q/2)/M/3; Incy = Cy - Side + 2*Side*q/M; x = 0; y = 0; w = 100; /* sfondo 1 */ for ( n = 1; n <= Num; ++n) { xx = (x*x - y*y)*(x*x - y*y) - 4*x*x*y*y - Incx; yy = 4*x*y*(x*x - y*y) - Incy; x = xx; y = yy; if ( x*x + y*y > Radius ) { w = n; n = Num; } } r[q + height/w] = w; } for ( q = 1; q <= M; q++) { fprintf(fp, "%c", r[q] ); r[q] = 100; } } fclose(fp); } /* end of main program */