From e7ea26f73c9b1507a38cc5869c6cd10c25201a41 Mon Sep 17 00:00:00 2001 From: Sam Leffler Date: Mon, 27 Jun 1983 21:09:12 -0800 Subject: [PATCH] date and time created 83/06/27 14:09:12 by sam SCCS-vsn: lib/libplot/t300/subr.c 4.1 --- usr/src/lib/libplot/t300/subr.c | 116 ++++++++++++++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 usr/src/lib/libplot/t300/subr.c diff --git a/usr/src/lib/libplot/t300/subr.c b/usr/src/lib/libplot/t300/subr.c new file mode 100644 index 0000000000..58dbb97860 --- /dev/null +++ b/usr/src/lib/libplot/t300/subr.c @@ -0,0 +1,116 @@ +#ifndef lint +static char sccsid[] = "@(#)subr.c 4.1 (Berkeley) %G%"; +#endif + +#include +#include "con.h" +abval(q) +{ + return (q>=0 ? q : -q); +} + +xconv (xp) +{ + /* x position input is -2047 to +2047, output must be 0 to PAGSIZ*HORZRES */ + xp += 2048; + /* the computation is newx = xp*(PAGSIZ*HORZRES)/4096 */ + return (xoffset + xp /xscale); +} + +yconv (yp) +{ + /* see description of xconv */ + yp += 2048; + return (yp / yscale); +} + +inplot() +{ + stty(OUTF, &PTTY); + spew (ACK); +} + +outplot() +{ + spew(ESC); + spew(ACK); + fflush(stdout); + stty(OUTF, &ITTY); +} + +spew(ch) +{ + if(ch == UP)putc(ESC,stdout); + putc(ch, stdout); +} + +tobotleft () +{ + move(-2048,-2048); +} +reset() +{ + outplot(); + exit(); +} + +float +dist2 (x1, y1, x2, y2) +{ + float t,v; + t = x2-x1; + v = y1-y2; + return (t*t+v*v); +} + +swap (pa, pb) +int *pa, *pb; +{ + int t; + t = *pa; + *pa = *pb; + *pb = t; +} +movep (xg, yg) +{ + int i,ch; + if((xg == xnow) && (yg == ynow))return; + /* if we need to go to left margin, just CR */ + if (xg < xnow/2) + { + spew(CR); + xnow = 0; + } + i = (xg-xnow)/HORZRES; + if(xnow < xg)ch = RIGHT; + else ch = LEFT; + xnow += i*HORZRES; + i = abval(i); + while(i--)spew(ch); + i = abval(xg-xnow); + inplot(); + while(i--) spew(ch); + outplot(); + i=(yg-ynow)/VERTRES; + if(ynow < yg)ch = UP; + else ch = DOWN; + ynow += i*VERTRES; + i = abval(i); + while(i--)spew(ch); + i=abval(yg-ynow); + inplot(); + while(i--)spew(ch); + outplot(); + xnow = xg; ynow = yg; +} + +xsc(xi){ + int xa; + xa = (xi - obotx) * scalex + botx; + return(xa); +} +ysc(yi){ + int ya; + ya = (yi - oboty) *scaley +boty; + return(ya); +} -- 2.20.1