int join(int join) { if (join < 0 || join > 2) return (1); join_type(join); return (0); }
void plot(void) { int c; int w, n, xmin, ymin, xmax, ymax; int x0, y0, r1, r2, arg1, arg2; while ((c = getchar()) != EOF) { switch (c) { case 'M': scanf("%d %d", &pb.x, &pb.y); _move(pb.x, pb.y); break; case 'D': _line(); break; case '%': scanf("%d", &n); hatching(n); break; /* polyg(n); break; */ case 'P': get_str(); break; case 'S': scanf("%d", &ch); break; case 'Q': scanf("%d", &cw); break; case 'R': scanf("%d", &th); th = (th == 0) ? 0 : 1; break; case 'L': scanf("%d", &w); line_type(w); break; case 'K': scanf("%d", &w); join_type(w); break; case 'W': scanf("%d %d %d %d %d %d", &x0, &y0, &r1, &r2, &arg1, &arg2); circle(x0, y0, r1, r2, arg1, arg2); break; case 'N': scanf("%d", &w); mark(w); break; case 'J': scanf("%d", &w); newpen(w); break; case '\\': scanf("%d %d", &xmin, &ymin); break; case 'Z': scanf("%d %d", &xmax, &ymax); if (!landscape) { if (xmax > XLENG) xmax = XLENG; if (ymax > YLENG) ymax = YLENG; } else { if (xmax > YLENG) xmax = YLENG; if (ymax > XLENG) ymax = XLENG; } clip(normx(xmin), normy(ymax), normx(xmax), normy(ymin)); break; case ';': case ':': break; default: break; } } }