Vector3d PlaneCorrection(TargetedTrajectoryBase old) { var angle = old.DeltaFi; angle *= Math.Sin(old.TransferTime/old.Orbit.period*2*Math.PI); angle *= Math.Sign(Utils.ProjectionAngle(old.StartPos, old.AtTargetPos, old.StartVel)); var rot = QuaternionD.AngleAxis(angle, old.StartPos); return Orbit2NodeDeltaV((rot*old.StartVel)-old.StartVel, old.StartUT); }
Vector3d PlaneCorrection(TargetedTrajectoryBase old) { var angle = old.DeltaFi; angle *= Math.Sin(old.TransferTime/old.Orbit.period*2*Math.PI); var rot = QuaternionD.AngleAxis(angle, old.StartPos); return Orbit2NodeDeltaV((rot*old.StartVel)-old.StartVel, old.StartUT); }