BSD 4_3_Reno release
[unix-history] / usr / src / lib / libplot / t450 / line.c
CommitLineData
25bda691 1#ifndef lint
0f4556f1 2static char sccsid[] = "@(#)line.c 4.1 (Berkeley) 6/27/83";
25bda691
SL
3#endif
4
5#include "con.h"
6line(x0,y0,x1,y1){
7 iline(xconv(xsc(x0)),yconv(ysc(y0)),xconv(xsc(x1)),yconv(ysc(y1)));
8 return;
9}
10cont(x0,y0){
11 iline(xnow,ynow,xconv(xsc(x0)),yconv(ysc(y0)));
12 return;
13}
14iline(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}