mirror of
https://github.com/Outer-Wilds-New-Horizons/new-horizons.git
synced 2025-12-11 20:15:44 +01:00
Fix initial velocity direction
This commit is contained in:
parent
f85c3ca825
commit
e20b8ff737
@ -88,11 +88,16 @@ namespace NewHorizons.Components.Orbital
|
||||
var x = r * Mathf.Cos(f);
|
||||
var y = r * Mathf.Sin(f);
|
||||
|
||||
// Forgot to take the derivative of r as well with respect to f
|
||||
var denominator = Mathf.Pow(eccentricity * Mathf.Cos(f) + 1, 2);
|
||||
var dx = -p * Mathf.Sin(f) / denominator;
|
||||
var dy = p * (eccentricity + Mathf.Cos(f)) / denominator;
|
||||
|
||||
var dir = Rotate(new Vector3(x, 0f, y).normalized, longitudeOfAscendingNode, inclination, argumentOfPeriapsis);
|
||||
var up = Rotate(Vector3.up, longitudeOfAscendingNode, inclination, argumentOfPeriapsis);
|
||||
var velocityDir = Rotate(new Vector3(dx, 0f, dy).normalized, longitudeOfAscendingNode, inclination, argumentOfPeriapsis);
|
||||
|
||||
var pos = r * dir;
|
||||
var vel = v * Vector3.Cross(dir, up).normalized;
|
||||
var vel = v * velocityDir;
|
||||
|
||||
orbitalParameters.InitialPosition = pos;
|
||||
orbitalParameters.InitialVelocity = vel;
|
||||
|
||||
@ -521,9 +521,9 @@ namespace NewHorizons.Handlers
|
||||
var primaryGravity = new Gravity(primaryBody.GetGravityVolume());
|
||||
var secondaryGravity = new Gravity(secondaryBody.GetGravityVolume());
|
||||
|
||||
var relativePosition = body.Config.Orbit.GetOrbitalParameters(primaryGravity, secondaryGravity).InitialPosition;
|
||||
var orbit = body.Config.Orbit;
|
||||
|
||||
go.transform.position = relativePosition + primaryBody.transform.position;
|
||||
go.transform.position = orbit.GetOrbitalParameters(primaryGravity, secondaryGravity).InitialPosition + primaryBody.transform.position;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user