60 static const long JulianEpoch = 2451545;
62 double days = (
static_cast<JulianDate>(t).jd - JulianEpoch);
67 double Tp = days / 36525.0;
74 G = 0.279057273264 + 100.0021390378009 * Tp
75 + (0.093104 - 6.2e-6 * Tp) * Tp * Tp / 86400.0;
109 D =
static_cast<JulianDate>(t).jd - 2451545.0;
112 q = 280.459 + 0.98564736 * D;
126 double lon = fmod(RA -
GMST(t), 360.0);
151 es.
setECEF(R * xhat, R * yhat, R * zhat);
161 int doy =
static_cast<YDSTime>(t).doy;
162 int hod = int(
static_cast<YDSTime>(t).
sod / 3600.0 + 0.5);
165 lat = lat / std::sqrt(1.0 - lat * lat);
167 lon = 180.0 - hod * 15.0;
220 if (dES >= Rearth + Rsun)
224 if (dES <= std::fabs(Rearth - Rsun))
228 double r = Rsun, R = Rearth, L = dES;
235 (R / L) * (1.0 + (L / R) * (L / R) - (r / R) * (r / R)) / 2.0;
236 double cosbeta = (L / r) - (R / r) * cosalpha;
237 double sinalpha = ::sqrt(1 - cosalpha * cosalpha);
238 double sinbeta = ::sqrt(1 - cosbeta * cosbeta);
239 double alpha = ::asin(sinalpha);
240 double beta = ::asin(sinbeta);
241 double shadow = r * r * (
beta - sinbeta * cosbeta) +
242 R * R * (alpha - sinalpha * cosalpha);
243 shadow /= ::acos(-1.0) * Rsun * Rsun;
252 double N =
static_cast<JulianDate>(t).jd - 2451545.0;
254 double T = N / 36525.0;
279 double eps = (23.439 - 0.00000036 * N) *
DEG_TO_RAD;
293 double lon = ::fmod(RA -
GMST(t), 360.0);
308 double R = 1.0 /
::sin(par);