📄 subr.c
字号:
#ifndef lintstatic char sccsid[] = "@(#)subr.c 1.1 92/07/30 SMI"; /* from UCB 4.1 6/27/83 */#endif#include <stdio.h>#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(){ spew (ESC); spew(PLOTIN);}outplot(){ spew(ESC); spew(PLOTOUT); fflush(stdout);}spew(ch){ if(ch == UP){ putc(ESC,stdout); ch = DOWN; } putc(ch, stdout);}tobotleft (){ move(-2048,-2048);}reset(){ signal(2,1); outplot(); stty(OUTF,&ITTY); exit(0);}floatdist2 (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);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -