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

📄 coord.c

📁 这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易于我们学习和理解
💻 C
字号:
#include <stdio.h>#include <string.h>#include <stdlib.h>#include "grap.h"#include "y.tab.h"char	*dflt_coord = "gg";char	*curr_coord = "gg";int	ncoord	= 0;	/* number of explicit coord's given */Point	xcoord;Point	ycoord;int	xcflag	= 0;	/* 1 if xcoord set */int	ycflag	= 0;int	logcoord = 0;void coord_x(Point pt)	/* remember x coord */{	xcoord = pt;	xcflag = 1;	margin = 0;	/* no extra space around picture if explicit coords */}void coord_y(Point pt){	ycoord = pt;	ycflag = 1;	margin = 0;	/* no extra space if explicit coords */}void coordlog(int n)	/* remember log scaling */{	logcoord = n;}void coord(Obj *p)	/* set coord range */{	static char buf[10];	ncoord++;	if (ncoord > 1 && strcmp(p->name, dflt_coord) == 0) {		/* resetting default coordinate by implication */		sprintf(buf, "gg%d", ncoord);		dflt_coord = buf;		p = lookup(dflt_coord, 1);	}	if (xcflag) {		p->coord |= XFLAG;		p->pt.x = min(xcoord.x,xcoord.y);	/* "xcoord" is xmin, xmax */		p->pt1.x = max(xcoord.x,xcoord.y);		if ((logcoord&XFLAG) && p->pt.x <= 0.0)			ERROR "can't have log of x coord %g,%g", p->pt.x, p->pt1.x FATAL;		xcflag = 0;	}	if (ycflag) {		p->coord |= YFLAG;		p->pt.y = min(ycoord.x,ycoord.y);	/* "ycoord" is ymin, ymax */		p->pt1.y = max(ycoord.x,ycoord.y);		if ((logcoord&YFLAG) && p->pt.y <= 0.0)			ERROR "can't have log of y coord %g,%g", p->pt.y, p->pt1.y FATAL;		ycflag = 0;	}	p->log = logcoord;	logcoord = 0;	auto_x = 0;}void resetcoord(Obj *p)	/* reset current coordinate */{	curr_coord = p->name;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -