⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subr.c

📁 操作系统SunOS 4.1.3版本的源码
💻 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(){	stty(OUTF, &PTTY);	spew(ESC);	spew (INPLOT);}outplot(){	spew(ESC);	spew(ACK);	spew(ESC);	spew(ACK);	fflush(stdout);	stty (OUTF, &ITTY);}spew(ch){	putc(ch, stdout);}tobotleft (){	move(-2048,-2048);}reset(){	outplot();	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;}#define DOUBLE 010#define ADDR 0100#define COM 060#define MAXX 070#define MAXY 07extern xnow,ynow;#define SPACES 7movep(ix,iy){	int dx,dy,remx,remy,pts,i;	int xd,yd;	int addr,command;	char c;	if(xnow == ix && ynow == iy)return;	inplot();	dx = ix-xnow;	dy = iy-ynow;	command = COM|PENUP|((dx<0)<<1)|(dy<0);	dx = abval(dx);	dy = abval(dy);	xd = dx/(SPACES*2);	yd = dy/(SPACES*2);	pts = xd<yd?xd:yd;	if((i=pts)>0){		c=command|DOUBLE;		addr=ADDR;		if(xd>0)addr|=MAXX;		if(yd>0)addr|=MAXY;		spew(c);		while(i--){			spew(addr);		}	}	if(xd!=yd){		if(xd>pts){			i=xd-pts;			addr=ADDR|MAXX;		}		else{			i=yd-pts;			addr=ADDR|MAXY;		}		c=command|DOUBLE;		spew(c);		while(i--){			spew(addr);		}	}	remx=dx-xd*SPACES*2;	remy=dy-yd*SPACES*2;	addr=ADDR;	i = 0;	if(remx>7){		i=1;		addr|=MAXX;		remx -= 7;	}	if(remy>7){		i=1;		addr|=MAXY;		remy -= 7;	}	while(i--){		spew(command);		spew(addr);	}	if(remx>0||remy>0){		spew(command);		spew(ADDR|remx<<3|remy);	}	xnow=ix;	ynow=iy;	outplot();	return;}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 + -