mercurys 0.0.3

Mercury celestial simulation crate for the MilkyWay SolarSystem workspace
Documentation
pub const J2000_JD: f64 = 2_451_545.0;

pub const MERCURY_PERIHELION_J2000_JD: f64 = 2_451_590.257;

pub fn julian_centuries(jd: f64) -> f64 {
    (jd - J2000_JD) / 36525.0
}

pub fn mean_longitude_deg(t: f64) -> f64 {
    (252.250_906_25 + 149_472.674_635_0 * t) % 360.0
}

pub fn mean_anomaly_deg(t: f64) -> f64 {
    (174.795_388_5 + 149_472.515_935_0 * t) % 360.0
}

pub fn sim_seconds_to_jd(start_jd: f64, elapsed_s: f64) -> f64 {
    start_jd + elapsed_s / 86400.0
}

pub fn gmst_hours(jd: f64) -> f64 {
    let t = julian_centuries(jd);
    let gmst = 280.460_618_37 + 360.985_647_366_29 * (jd - J2000_JD) + 0.000_387_933 * t * t;
    (gmst % 360.0) / 15.0
}