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

📄 rarc.c

📁 这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易于我们学习和理解
💻 C
字号:
#include "mplot.h"/*		arc plotting routine		*//*		from x1,y1 to x2,y2		*//*	with center xc,yc and radius rr	*//*	integrates difference equation		*//*	negative rr draws counterclockwise	*/#define PI4 0.7854void rarc(double x1, double y1, double x2, double y2, double xc, double yc, double rr){	register double dx, dy, a, b;	double	ph, dph, rd, xnext;	register int	n;	dx = x1 - xc;	dy = y1 - yc;	rd = sqrt(dx * dx + dy * dy);	if (rd / e1->quantum < 1.0) { 		move(xc, yc); 		vec(xc, yc); 		return;	}	dph = acos(1.0 - (e1->quantum / rd));	if (dph > PI4) 		dph = PI4;	ph=atan2((y2-yc),(x2 - xc)) - atan2(dy, dx);	if (ph < 0) 		ph += 6.2832; 	if (rr < 0) 		ph = 6.2832 - ph;	if (ph < dph) 		plotline(x1, y1, x2, y2);	else {		n = ph / dph; 		a = cos(dph); 		b = sin(dph); 		if (rr < 0) 			b = -b;		move(x1, y1);		while ((n--) >= 0) {			xnext = dx * a - dy * b; 			dy = dx * b + dy * a; 			dx = xnext;			vec(dx + xc, dy + yc);		}	}}

⌨️ 快捷键说明

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