Annotation of 43BSDReno/lib/libplot/t300/subr.c, revision 1.1.1.1

1.1       root        1: #ifndef lint
                      2: static char sccsid[] = "@(#)subr.c     4.1 (Berkeley) 6/27/83";
                      3: #endif
                      4: 
                      5: #include <stdio.h>
                      6: #include "con.h"
                      7: abval(q)
                      8: {
                      9:        return (q>=0 ? q : -q);
                     10: }
                     11: 
                     12: xconv (xp)
                     13: {
                     14:        /* x position input is -2047 to +2047, output must be 0 to PAGSIZ*HORZRES */
                     15:        xp += 2048;
                     16:        /* the computation is newx = xp*(PAGSIZ*HORZRES)/4096 */
                     17:        return (xoffset + xp /xscale);
                     18: }
                     19: 
                     20: yconv (yp)
                     21: {
                     22:        /* see description of xconv */
                     23:        yp += 2048;
                     24:        return (yp / yscale);
                     25: }
                     26: 
                     27: inplot()
                     28: {
                     29:        stty(OUTF, &PTTY);
                     30:        spew (ACK);
                     31: }
                     32: 
                     33: outplot()
                     34: {
                     35:        spew(ESC);
                     36:        spew(ACK);
                     37:        fflush(stdout);
                     38:        stty(OUTF, &ITTY);
                     39: }
                     40: 
                     41: spew(ch)
                     42: {
                     43:        if(ch == UP)putc(ESC,stdout);
                     44:        putc(ch, stdout);
                     45: }
                     46: 
                     47: tobotleft ()
                     48: {
                     49:        move(-2048,-2048);
                     50: }
                     51: reset()
                     52: {
                     53:        outplot();
                     54:        exit();
                     55: }
                     56: 
                     57: float
                     58: dist2 (x1, y1, x2, y2)
                     59: {
                     60:        float t,v;
                     61:        t = x2-x1;
                     62:        v = y1-y2;
                     63:        return (t*t+v*v);
                     64: }
                     65: 
                     66: swap (pa, pb)
                     67: int *pa, *pb;
                     68: {
                     69:        int t;
                     70:        t = *pa;
                     71:        *pa = *pb;
                     72:        *pb = t;
                     73: }
                     74: movep (xg, yg)
                     75: {
                     76:        int i,ch;
                     77:        if((xg == xnow) && (yg == ynow))return;
                     78:        /* if we need to go to left margin, just CR */
                     79:        if (xg < xnow/2)
                     80:        {
                     81:                spew(CR);
                     82:                xnow = 0;
                     83:        }
                     84:        i = (xg-xnow)/HORZRES;
                     85:        if(xnow < xg)ch = RIGHT;
                     86:        else ch = LEFT;
                     87:        xnow += i*HORZRES;
                     88:        i = abval(i);
                     89:        while(i--)spew(ch);
                     90:        i = abval(xg-xnow);
                     91:        inplot();
                     92:        while(i--) spew(ch);
                     93:        outplot();
                     94:        i=(yg-ynow)/VERTRES;
                     95:        if(ynow < yg)ch = UP;
                     96:        else ch = DOWN;
                     97:        ynow += i*VERTRES;
                     98:        i = abval(i);
                     99:        while(i--)spew(ch);
                    100:        i=abval(yg-ynow);
                    101:        inplot();
                    102:        while(i--)spew(ch);
                    103:        outplot();
                    104:        xnow = xg; ynow = yg;
                    105: }
                    106: 
                    107: xsc(xi){
                    108:        int xa;
                    109:        xa = (xi - obotx) * scalex + botx;
                    110:        return(xa);
                    111: }
                    112: ysc(yi){
                    113:        int ya;
                    114:        ya = (yi - oboty) *scaley +boty;
                    115:        return(ya);
                    116: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.