geo.c
来自「这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易」· C语言 代码 · 共 61 行
C
61 行
#include "astro.h"voidgeo(void){/* * uses alpha, delta, rp *//* * sets ra, decl, lha, decl2, az, el *//* * geo converts geocentric equatorial coordinates * to topocentric equatorial and topocentric horizon * coordinates. * All are (usually) referred to the true equator. */ double sel, saz, caz; double f; double sa, ca, sd;/* * convert to local hour angle and declination */ lha = gst - alpha - wlong; decl = delta;/* * compute diurnal parallax (requires geocentric latitude) */ sa = cos(decl)*sin(lha); ca = cos(decl)*cos(lha) - erad*cos(glat)*sin(hp); sd = sin(decl) - erad*sin(glat)*sin(hp); lha = atan2(sa, ca); decl2 = atan2(sd, sqrt(sa*sa+ca*ca)); f = sqrt(sa*sa+ca*ca+sd*sd); semi2 = semi/f; ra = gst - lha - wlong; ra = pinorm(ra);/* * convert to horizon coordinates */ sel = sin(nlat)*sin(decl2) + cos(nlat)*cos(decl2)*cos(lha); el = atan2(sel, pyth(sel)); saz = sin(lha)*cos(decl2); caz = cos(nlat)*sin(decl2) - sin(nlat)*cos(decl2)*cos(lha); az = pi + atan2(saz, -caz); az /= radian; el /= radian;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?