/* cc seir.c -o bseir -lm */ #include #include #define HEALTHY 0 #define EXPOSED 1 #define INFECTED 2 #define IMMUNE 3 #define EXP_TIME 3 #define INF_TIME 3 #define IMM_TIME 3 #define INF_RATE (0.45) #define INIT_EXP (0.1) #define MAXTIME 500 #define CELLS 1000 int state[CELLS], timer[CELLS]; double inf_rate, scnt, ecnt, icnt, rcnt; void InitStuff(); void SpreadDisease(void); void StoE(int, int, int); void ChangeStates(void); void Measurements(void); void Spit_EPS_Header(FILE *, int, int); void Spit_EPS_Row(FILE *); void Spit_EPS_Trailer(FILE *); int main(void) { int i; FILE *fopen(const char *, const char *), *fileid; fileid = fopen("seirim.eps","w"); InitStuff(); Measurements(); Spit_EPS_Header(fileid,CELLS,MAXTIME); for(i=0;i600.0) { rat = 600.0/neww; neww = 600.0; newl = rat*newl; } if(newl>780.0) { rat = 780.0/newl; newl = 780.0; neww = rat*neww; } /* 8.5x11 page with no margins is 612x792 points */ xorigin = (612 - neww)/2.0; yorigin = (792 - newl)/2.0; fprintf(fileid,"%%!PS-Adobe-2.0 EPSF-2.0\n"); fprintf(fileid,"%%%%BoundingBox: %f %f %f %f\n", xorigin, yorigin,xorigin+neww,yorigin+newl); fprintf(fileid,"gsave\n"); /* put box around image */ fprintf(fileid,"%f %f moveto\n",xorigin-1,yorigin-1); fprintf(fileid,"%f %f lineto\n",xorigin-1,yorigin+newl+1); fprintf(fileid,"%f %f lineto\n",xorigin+neww+1,yorigin+newl+1); fprintf(fileid,"%f %f lineto\n",xorigin+neww+1,yorigin-1); fprintf(fileid,"%f %f lineto\n",xorigin-1,yorigin-1); fprintf(fileid,"stroke\n\n",xorigin-1,yorigin-1); fprintf(fileid,"/bufstr %d string def\n\n",width); fprintf(fileid,"%f %f translate\n",xorigin,yorigin); fprintf(fileid,"%f %f scale\n\n",neww,newl); fprintf(fileid,"%d %d 4\n",width,length); fprintf(fileid,"[%d 0 0 %d 0 %d]\n",width,-length,length); fprintf(fileid,"{currentfile bufstr readhexstring pop} bind image\n"); } void Spit_EPS_Row(FILE *fileid) { int i, j=0; for(i=0;i