Commit | Line | Data |
---|---|---|
25bda691 | 1 | #ifndef lint |
0f4556f1 | 2 | static char sccsid[] = "@(#)line.c 4.1 (Berkeley) 6/27/83"; |
25bda691 SL |
3 | #endif |
4 | ||
5 | #include "con.h" | |
6 | line(x0,y0,x1,y1){ | |
7 | iline(xconv(xsc(x0)),yconv(ysc(y0)),xconv(xsc(x1)),yconv(ysc(y1))); | |
8 | return; | |
9 | } | |
10 | cont(x0,y0){ | |
11 | iline(xnow,ynow,xconv(xsc(x0)),yconv(ysc(y0))); | |
12 | return; | |
13 | } | |
14 | iline(cx0,cy0,cx1,cy1){ | |
15 | int maxp,tt,j,np; | |
16 | char chx,chy; | |
17 | float xd,yd; | |
18 | float dist2(),sqrt(); | |
19 | movep(cx0,cy0); | |
20 | maxp = sqrt(dist2(cx0,cy0,cx1,cy1))/2.; | |
21 | xd = cx1-cx0; | |
22 | yd = cy1-cy0; | |
23 | if(xd >= 0)chx = RIGHT; | |
24 | else chx = LEFT; | |
25 | if(yd >= 0)chy = UP; | |
26 | else chy = DOWN; | |
27 | if(maxp == 0){ | |
28 | xd=0; | |
29 | yd=0; | |
30 | } | |
31 | else{ | |
32 | xd /= maxp; | |
33 | yd /= maxp; | |
34 | } | |
35 | inplot(); | |
36 | for (tt=0; tt<=maxp; tt++){ | |
37 | j= cx0+xd*tt-xnow; | |
38 | xnow += j; | |
39 | j = abval(j); | |
40 | while(j-- > 0)spew(chx); | |
41 | j = cy0+yd*tt-ynow; | |
42 | ynow += j; | |
43 | j = abval(j); | |
44 | while(j-- > 0)spew(chy); | |
45 | spew ('.'); | |
46 | } | |
47 | outplot(); | |
48 | return; | |
49 | } |