X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=moebius2.git;a=blobdiff_plain;f=primer.c;h=76939a6356b9911dc59e29913603cf8af5ee671b;hp=a21dded6765a45618439bbca9ef16de71f7c51cd;hb=9e8860ae32184285e451568d39df79baf7f44aff;hpb=2e8e765ae894f9921fa97db2f21915662f162224 diff --git a/primer.c b/primer.c index a21dded..76939a6 100644 --- a/primer.c +++ b/primer.c @@ -8,21 +8,31 @@ #include "mgraph.h" int main(int argc, const char **argv) { - int v, k; + static const int prec= DBL_DIG+2; + int vi; - if (argc>1) { fputs("no args please\n",stderr); exit(8); } + if (argc!=1) { fputs("need no args\n",stderr); exit(8); } - printf("print %d, %d, %d, %d, %d\n", DIM, N, X, Y, D3); - - FOR_VERTEX(v) { - int x= v & XMASK; /* distance along strip */ - int y= v >> YSHIFT; /* distance across strip */ - double u= y * 1.0 / (Y-1); - double v= x * M_PI / (X-1); /* SGT's u runs 0..pi along the strip */ - K printf("print %c%c(%.*g,%.*g)\n", - "+-+"[k], - "xyz"[k], - DBL_DIG+2,u, DBL_DIG+2,v); + printf("%d %d %d %d %d\n%%-%d.%dg\n", + X*Y, N, X, Y, D3, + prec+5,prec); + + FOR_VERTEX(vi, INNER) { + int x= vi & XMASK; /* distance along strip */ + int y= vi >> YSHIFT; /* distance across strip */ + double u= y * 1.0 / (Y-1); /* SGT's u runs 0..1 across the strip */ + + /* SGT's v runs 0..pi along the strip, where the join is at 0==pi. + * So that corresponds to 0..X (since 0==X in our scheme). + * Vertices with odd y coordinate are halfway to the next x coordinate. + */ + double v= (x*2 + (y&1)) * 1.0 / (X*2); + v += 0.5; + v *= M_PI; + + printf("%-*.*g %-*.*g # %03x %2d %2d\n", + prec+5,prec,u, prec+5,prec,v, + vi, x, y); } flushoutput(); return 0;