diff --git a/src/orbital_mechanics.cpp b/src/orbital_mechanics.cpp index a0c01d6..712dcd7 100644 --- a/src/orbital_mechanics.cpp +++ b/src/orbital_mechanics.cpp @@ -44,8 +44,8 @@ void orbital_elements_to_cartesian(OrbitalElements elements, double parent_mass, double p = a * (1.0 - e * e); vx_orbital = -sqrt(mu / p) * sin_nu; vy_orbital = sqrt(mu / p) * (e + cos_nu); - } else if (fabs(e - 1.0) < 1e-10) { - double p = 2.0 * a; + } else if (fabs(e - 1.0) < 0.005) { + double p = elements.semi_latus_rectum; vx_orbital = -sqrt(mu / p) * sin_nu; vy_orbital = sqrt(mu / p) * (1.0 + cos_nu); } else { diff --git a/tests/configs/parabolic_comet.toml b/tests/configs/parabolic_comet.toml index fb8881e..ef0e4f0 100644 --- a/tests/configs/parabolic_comet.toml +++ b/tests/configs/parabolic_comet.toml @@ -21,7 +21,7 @@ radius = 5.0e3 parent_index = 0 color = {r = 0.7,g = 0.8,b = 0.9 } orbit = { - semi_latus_rectum = 1.496e11, + semi_latus_rectum = 2.992e11, eccentricity = 1.0, true_anomaly = 0.0 }