/*% $COM -o # % -lm */ #include #include #define SPACE .75 /* spacing between circle centers */ #define RAD .32 /* circle radius */ #define DIAG (RAD*sqrt(.5)) /* diagonal spacing */ #define NROW 13 #define NCOL 9 void seg(double x0, double y0, double x1, double y1){ printf("line thickness 2 from %g,%g to %g,%g\n", x0, y0, x1, y1); } int main(void){ int x, y; double xc, yc; printf(".sp 3\n"); printf(".ce\n"); printf("\\s241+1 Guide\\s0\n"); printf(".sp\n"); printf(".PS\n"); for(y=0;y!=NROW;y++){ yc=SPACE*y; for(x=0;x!=NCOL;x++){ xc=SPACE*x; printf("circle thickness 2 radius %g at %g,%g\n", RAD, xc, yc); printf("\"\\d\\s24%d:%d\\s0\\u\" at %g,%g\n", x+1, NROW-y, xc, yc); if(x!=NCOL-1) seg(xc+RAD, yc, xc+SPACE-RAD, yc); if(y!=NROW-1) seg(xc, yc+RAD, xc, yc+SPACE-RAD); if(x!=NCOL-1 && y!=NROW-1){ seg(xc+DIAG, yc+DIAG, xc+SPACE-DIAG, yc+SPACE-DIAG); seg(xc+DIAG, yc+SPACE-DIAG, xc+SPACE-DIAG, yc+DIAG); } } } printf(".PE\n"); return 0; }