当前位置: 首页>>代码示例>>C#>>正文


C# Orbit.GetAngleToVector方法代码示例

本文整理汇总了C#中Orbit.GetAngleToVector方法的典型用法代码示例。如果您正苦于以下问题:C# Orbit.GetAngleToVector方法的具体用法?C# Orbit.GetAngleToVector怎么用?C# Orbit.GetAngleToVector使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Orbit的用法示例。


在下文中一共展示了Orbit.GetAngleToVector方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Update

        /// <summary>
        ///     Updates the details by recalculating if requested.
        /// </summary>
        public void Update()
        {
            if (FlightGlobals.fetch == null ||
                FlightGlobals.fetch.VesselTarget == null ||
                FlightGlobals.ActiveVessel == null ||
                FlightGlobals.ActiveVessel.targetObject == null ||
                FlightGlobals.ActiveVessel.targetObject.GetOrbit() == null ||
                FlightGlobals.ship_orbit == null ||
                FlightGlobals.ship_orbit.referenceBody == null)
            {
                ShowDetails = false;
                return;
            }

            ShowDetails = true;

            targetOrbit = FlightGlobals.fetch.VesselTarget.GetOrbit();
            originOrbit = (FlightGlobals.ship_orbit.referenceBody == Planetarium.fetch.Sun ||
                           FlightGlobals.ship_orbit.referenceBody == FlightGlobals.ActiveVessel.targetObject.GetOrbit().referenceBody)
                ? FlightGlobals.ship_orbit
                : FlightGlobals.ship_orbit.referenceBody.orbit;

            RelativeInclination = originOrbit.GetRelativeInclination(targetOrbit);
            RelativeVelocity = FlightGlobals.ship_tgtSpeed;
            RelativeSpeed = FlightGlobals.ship_obtSpeed - targetOrbit.orbitalSpeed;
            PhaseAngle = originOrbit.GetPhaseAngle(targetOrbit);
            InterceptAngle = CalcInterceptAngle();
            TimeToAscendingNode = originOrbit.GetTimeToVector(GetAscendingNode());
            TimeToDescendingNode = originOrbit.GetTimeToVector(GetDescendingNode());
            AngleToAscendingNode = originOrbit.GetAngleToVector(GetAscendingNode());
            AngleToDescendingNode = originOrbit.GetAngleToVector(GetDescendingNode());
            AltitudeSeaLevel = targetOrbit.altitude;
            ApoapsisHeight = targetOrbit.ApA;
            PeriapsisHeight = targetOrbit.PeA;
            TimeToApoapsis = targetOrbit.timeToAp;
            TimeToPeriapsis = targetOrbit.timeToPe;
            SemiMajorAxis = targetOrbit.semiMajorAxis;
            SemiMinorAxis = targetOrbit.semiMinorAxis;

            Distance = Vector3d.Distance(targetOrbit.pos, originOrbit.pos);
            OrbitalPeriod = targetOrbit.period;

            // beware that the order/sign of coordinates is inconsistent across different exposed variables
            // in particular, v below does not equal to FlightGlobals.ship_tgtVelocity
            Vector3d x = targetOrbit.pos - originOrbit.pos;
            Vector3d v = targetOrbit.vel - originOrbit.vel;
            double xv = Vector3d.Dot(x, v);
            TimeToRendezvous = - xv / Vector3d.SqrMagnitude(v);
            RelativeRadialVelocity = xv / Vector3d.Magnitude(x);
        }
开发者ID:d5039m,项目名称:KerbalEngineer,代码行数:53,代码来源:RendezvousProcessor.cs


注:本文中的Orbit.GetAngleToVector方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。