|
|
1.1 ! root 1: #include "sky.h" ! 2: ! 3: star() ! 4: { ! 5: double capt0, capt1, capt12, capt13; ! 6: double sl, sb, cl; ! 7: double zt, zee, tht; ! 8: double sa, ca, sd; ! 9: ! 10: capt0 = epoch/36524.220; ! 11: capt1 = (eday - epoch)/36524.220; ! 12: capt12 = capt1*capt1; ! 13: capt13 = capt12*capt1; ! 14: ! 15: da = da*radsec*15.*100.; ! 16: dd = dd*radsec*100.; ! 17: ! 18: /* ! 19: * remove E-terms of aberration ! 20: * except when finding catalog mean places ! 21: * See Exp. Supp. p. 144 and 48 ! 22: * ! 23: * I have omitted an unimportant time dependence which depends ! 24: * in essence on the change in the eccentricity ! 25: * and the perihelion position of the earths orbit. ! 26: */ ! 27: ! 28: alpha = alpha + .341*radsec*sin(alpha+168.8*radian) ! 29: /cos(delta); ! 30: delta = delta + .341*radsec*cos(alpha+168.8*radian) ! 31: *sin(delta) + .029*radsec*cos(delta); ! 32: ! 33: /* ! 34: * Correct for proper motion. ! 35: * ! 36: * This computation is a second order approximation which ! 37: * causes no perciptible error in a millenium. ! 38: */ ! 39: ! 40: alpha = alpha + capt1*da ! 41: + da*dd*sin(delta)/cos(delta)*capt1*capt1; ! 42: delta = delta + capt1*dd ! 43: - 0.25*da*da*sin(2.*delta)*capt1*capt1; ! 44: ! 45: /* ! 46: * The effect of radial velocity has been omitted. ! 47: * The only bright stars perceptibly affected are ! 48: * Sirius, alpha Cent, and Altair. ! 49: */ ! 50: ! 51: /* ! 52: * convert mean places at epoch of startable to current ! 53: * epoch (i.e. compute relevant precession) ! 54: * Coefficients are from Exp. Supp. p. 30. ! 55: */ ! 56: ! 57: zt = (2304.250 + 1.396*capt0)*capt1 + 0.302*capt12 ! 58: + 0.018*capt13; ! 59: zee = zt + 0.791*capt12; ! 60: tht = (2004.682 - 0.853*capt0)*capt1 - 0.426*capt12 ! 61: - 0.042*capt13; ! 62: ! 63: zt = zt*radsec; ! 64: zee = zee*radsec; ! 65: tht = tht*radsec; ! 66: ! 67: sa = cos(delta)*sin(alpha+zt); ! 68: ca = cos(tht)*cos(delta)*cos(alpha+zt) - sin(tht)*sin(delta); ! 69: sd = cos(tht)*sin(delta) + sin(tht)*cos(delta)*cos(alpha+zt); ! 70: ! 71: alpha = atan2(sa,ca) + zee; ! 72: delta = atan2(sd, sqrt(sa*sa+ca*ca)); ! 73: ! 74: /* ! 75: * convert to mean ecliptic system of date ! 76: */ ! 77: ! 78: cl = cos(delta)*cos(alpha); ! 79: sl = cos(delta)*sin(alpha)*cos(obliq) + sin(delta)*sin(obliq); ! 80: sb = -cos(delta)*sin(alpha)*sin(obliq) + sin(delta)*cos(obliq); ! 81: lambda = atan2(sl,cl); ! 82: beta = atan2(sb,sqrt(cl*cl+sl*sl)); ! 83: if(px > 1.0) px = 0.; ! 84: if(px != 0.) rad = 1./(radsec*px); ! 85: if(px <= 0.) rad = 1.e9; ! 86: semi = 0.; ! 87: ldot = 0.; ! 88: bdot = 0.; ! 89: rdot = 0.; ! 90: ! 91: helio(); ! 92: geo(); ! 93: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.