diff --git a/NewHorizons/Builder/Body/RingBuilder.cs b/NewHorizons/Builder/Body/RingBuilder.cs index a88ddb27..91684217 100644 --- a/NewHorizons/Builder/Body/RingBuilder.cs +++ b/NewHorizons/Builder/Body/RingBuilder.cs @@ -42,7 +42,7 @@ namespace NewHorizons.Builder.Body ringGO.transform.position = planetGO.transform.position; ringGO.transform.rotation = planetGO.transform.rotation; ringGO.transform.Rotate(ringGO.transform.TransformDirection(Vector3.up), ring.LongitudeOfAscendingNode); - ringGO.transform.Rotate(ringGO.transform.TransformDirection(Vector3.right), ring.Inclination); + ringGO.transform.Rotate(ringGO.transform.TransformDirection(Vector3.left), ring.Inclination); var ringMF = ringGO.AddComponent(); var ringMesh = ringMF.mesh; diff --git a/NewHorizons/Components/Orbital/OrbitalParameters.cs b/NewHorizons/Components/Orbital/OrbitalParameters.cs index 76b7c17e..e3ad1b70 100644 --- a/NewHorizons/Components/Orbital/OrbitalParameters.cs +++ b/NewHorizons/Components/Orbital/OrbitalParameters.cs @@ -107,10 +107,11 @@ namespace NewHorizons.Components.Orbital public static Vector3 Rotate(Vector3 vector, float longitudeOfAscendingNode, float inclination, float argumentOfPeriapsis) { - var R1 = Quaternion.AngleAxis(longitudeOfAscendingNode + argumentOfPeriapsis, Vector3.up); - var R2 = Quaternion.AngleAxis(inclination, R1 * Vector3.left); + var R1 = Quaternion.AngleAxis(longitudeOfAscendingNode, Vector3.up); + var R2 = Quaternion.AngleAxis(argumentOfPeriapsis, Vector3.up); + var R3 = Quaternion.AngleAxis(inclination, R1 * Vector3.left); - return R1 * R2 * vector; + return R3 * R2 * R1 * vector; } public OrbitalParameters GetOrbitalParameters(Gravity primaryGravity, Gravity secondaryGravity)