static const int prec= DBL_DIG+2;
int vi, k;
- if (argc>1) { fputs("no args please\n",stderr); exit(8); }
+ if (argc!=10 || !strlen(argv[2]) || strlen(argv[2]) != strlen(argv[3]))
+ { fputs("wrong # args or lengths\n",stderr); exit(8); }
- printf("print %d, %d, %d, %d, %d\n", DIM, N, X, Y, D3);
+ printf("%s%d%s%d%s%d%s%d%s%d\n",
+ argv[7], DIM, argv[8], N, argv[8], X, argv[8], Y, argv[8], D3);
FOR_VERTEX(vi) {
int x= vi & XMASK; /* distance along strip */
* 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)) * M_PI / (X*2);
+ double v= (x*2 + (y&1)) * 1.0 / (X*2);
- K printf("print %c%c( %-*.*g, %-*.*g); # %03x %2d %2d\n",
- "+-+"[k], "xyz"[k],
- prec+5,prec,u, prec+5,prec,v,
- vi, x, y);
+ if (!strchr(argv[9],'u'))
+ v *= M_PI;
+
+ K {
+ if (k >= strlen(argv[2])) break;
+ printf("%s%c%c%s%-*.*g%s%-*.*g%s%03x %2d %2d\n",
+ argv[1], argv[2][k], argv[3][k], argv[4],
+ prec+5,prec,u, argv[5], prec+5,prec,v,
+ argv[6], vi, x, y);
+ }
}
flushoutput();
return 0;