#include #include #include #include "type-def.h" #include "util.h" #include "imageio.h" #define NX 1000 #define NY 1000 #define MIN(a, b) ((a)<(b)?(a):(b)) double a[4] = {0.0,0.2,-0.15,0.75}; double b[4] = {0.0,-0.26,0.28,0.04}; double c[4] = {0.0,0.0023,0.0026,-0.04}; double d[4] = {0.16,0.22,0.24,0.85}; double e[4] = {0.0,0.0,0.0,0.0}; double f[4] = {0.0,1.6,0.44,1.6}; int main(int argc,char **argv) { int i,j,k; int n = 1000; int ix,iy; double r,x,y,xlast=0,ylast=0; double xmin=1e32,xmax=-1e32,ymin=1e32,ymax=-1e32,scale,xmid,ymid; char fname[256]; IMAGEINT_MBAND image; if (argc < 2) { fprintf(stderr,"Usage: %s nsteps\n",argv[0]); exit(0); } n = atoi(argv[1]); if (argc < 3) { strcpy(fname,"fern.pgm"); } else { strcpy(fname,argv[2]); } image.nband = 0; Create_Image_MBAND(&image, (int)NY, (int)NX, 3); for (i=0; i < image.nrow; i++) { for (j=0; j < image.ncol; j++) { for (k=0; k < image.nband; k++) { image.bands[k].data[i][j] = 255; } } } /* EraseBitmap(image,NX,NY,white); */ for (j=0;j<2;j++) { for (i=0;i xmax) xmax = x; if (y > ymax) ymax = y; if (j == 1) { scale = MIN(NX / (xmax - xmin),NY / (ymax - ymin)); xmid = (xmin + xmax) / 2; ymid = (ymin + ymax) / 2; ix = NX / 2 + (x - xmid) * scale-1; iy = NY / 2 + (y - ymid) * scale-1; for (k=0; k < image.nband; k++) { if (iy < image.bands[k].nrow && iy >= 0 && ix < image.bands[k].ncol && ix >=0 ) { image.bands[k].data[image.bands[k].nrow-iy-1][ix] = (k==1)*255; } else { printf("Pixel position (%d, %d) is out of range.\n", ix, iy); } } /* DrawPixel(image,NX,NY,ix,iy,black); */ } } } WriteP6Char(fname, &image, (int)1); /* WriteBitmap(stdout,image,NX,NY,2); */ return 0; }