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