|
|
1.1 root 1: #include "pen.h"
2: double DX, DY;
3: int res = 0;
4: struct penvir E[9];
5: struct penvir *e0 = E, *e1 = &E[1];
6: struct penvir *esave;
7: int penstate = UP;
8: int noscale = 1;
9: FILE *pltin, *pltout;
10: char *pens[4] = {
11: "black",
12: "red",
13: "green",
14: "blue"
15: };
16: ckerr(doit)
17: {
18: register int i;
19: static int count;
20:
21: if(doit) count = 0;
22: if(count >= 250) count = 0;
23: if(count++ != 0) return;
24: fprintf(pltout,"OE;\n");
25: fflush(pltout);
26: i = readInt(pltin);
27: if(i > 0){
28: fprintf(stderr,"plotter error %d\n",i);
29: exit(1);
30: }
31: }
32: float theta(x1,y1,x2,y2,xc,yc,r)
33: double x1,y1,x2,y2,xc,yc,r;
34: {
35: float radians, degrees;
36: radians = atan2((y2-yc), (x2-xc)) - atan2((y1-yc),(x1-xc));
37: if(radians < 0)radians += 2*PI;
38: if(r < 0)radians = (2*PI) - radians;
39: degrees = (radians * 180.) / PI;
40: return( (r<0)? -degrees : degrees);
41: }
42: int
43: readInt(f)
44: FILE *f;
45: {
46: register i, c;
47: int sign = 1;
48: i = 0;
49: for(;;) {
50: c = getc(f);
51: if(c == EOF) {
52: fprintf(stderr, "eof on plotter\n");
53: exit(1);
54: }
55: c &= 0177;
56: if(c == '-'){
57: sign = -1;
58: c = getc(f) & 0177;
59: break;
60: }
61: if(c >= '0' && c <= '9')
62: break;
63: }
64: while(c >= '0' && c <= '9') {
65: i = 10*i + c - '0';
66: c = getc(f) & 0177;
67: }
68: i *= sign;
69: return(i);
70: }
71: sscpy(f,t)
72: struct penvir *f, *t;
73: {
74: t->scale = f->scale;
75: t->xmax = f->xmax;
76: t->ymax = f->ymax;
77: t->xmin = f->xmin;
78: t->ymin = f->ymin;
79: t->copyx = f->copyx;
80: t->copyy = f->copyy;
81: t->p1x = f->p1x;
82: t->p1y = f->p1y;
83: t->p2x = f->p2x;
84: t->p2y = f->p2y;
85: t->charsz = f->charsz;
86: t->pen = f->pen;
87: t->brush = f->brush;
88: t->pentype = f->pentype;
89: t->pslant = f->pslant;
90: t->pgap = f->pgap;
91: }
92: float
93: normx(x)
94: double x;
95: {
96: return(x);
97: }
98: float
99: normy(y)
100: double y;
101: {
102: return(y);
103: }
104: unorm(){}
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.