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

📄 init.c

📁 这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易于我们学习和理解
💻 C
字号:
#include "astro.h"Obj2*	objlst[] ={	&osun,	&omoon,	&oshad,	&omerc,	&ovenus,	&omars,	&ojup,	&osat,	&ouran,	&onept,	&oplut,	&ocomet,	0,};struct	idata{	char*	name;	char*	name1;	void	(*obj)(void);} idata[] ={	"The sun",	"sun",		fsun,	"The moon",	"moon",		moon,	"The shadow",	"shadow",	shad,	"Mercury",	"mercury",	merc,	"Venus",	"venus",	venus,	"Mars",		"mars",		mars,	"Jupiter",	"jupiter",	jup,	"Saturn",	"saturn",	sat,	"Uranus",	"uranus",	uran,	"Neptune",	"neptune",	nept,	"Pluto",	"pluto",	plut,	"Comet",	"comet",	comet,};voidinit(void){	Obj2 *q;	int i;	glat = nlat - (692.74*radsec)*sin(2.*nlat)		 + (1.16*radsec)*sin(4.*nlat);	erad = .99832707e0 + .00167644e0*cos(2.*nlat)		 - 0.352e-5*cos(4.*nlat)		 + 0.001e-5*cos(6.*nlat)		 + 0.1568e-6*elev;	for(i=0; q=objlst[i]; i++) {		q->name = idata[i].name;		q->name1 = idata[i].name1;		q->obj = idata[i].obj;	}	ostar.obj = fstar;	ostar.name = "star";}voidsetime(double d){	double x, xm, ym, zm;	eday = d + deltat/86400.;	wlong = awlong + 15.*deltat*radsec;	capt = eday/36524.220e0;	capt2 = capt*capt;	capt3 = capt*capt2;	nutate();	eday += .1;	sun();	srad = rad;	xm = rad*cos(beta)*cos(lambda);	ym = rad*cos(beta)*sin(lambda);	zm = rad*sin(beta);	eday -= .1;	sun();	xms = rad*cos(beta)*cos(lambda);	yms = rad*cos(beta)*sin(lambda);	zms = rad*sin(beta);	x = .057756;	xdot = x*(xm-xms);	ydot = x*(ym-yms);	zdot = x*(zm-zms);}voidsetobj(Obj1 *op){	Obj1 *p;	p = op;	p->ra = ra;	p->decl2 = decl2;	p->semi2 = semi2;	p->az = az;	p->el = el;	p->mag = mag;}long	starsao = 0;voidfstar(void){	ra = ostar.point[0].ra;	decl2 = ostar.point[0].decl2;	semi2 = ostar.point[0].semi2;	az = ostar.point[0].az;	el = ostar.point[0].el;	mag = ostar.point[0].mag;}voidfsun(void){	beta = 0;	rad = 0;	lambda = 0;	motion = 0;	helio();	geo();	seday = eday;	salph = alpha;	sdelt = delta;	mag = lmb2;}voidshad(void){	if(seday != eday)		fsun();	if(meday != eday)		moon();	alpha = fmod(salph+pi, pipi);	delta = -sdelt;	hp = mhp;	semi = 1.0183*mhp/radsec - 969.85/srad;	geo();}

⌨️ 快捷键说明

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