public static PositionBySphereEquinox[] GetPositions() { return(new PositionBySphereEquinox[] { new PositionBySphereEquinox( PositionByOrbitalElementsArray.GetEarthBaseArray(), PositionByOrbitalElementsArray.GetEarthBaseArray().Length), new PositionBySphereEquinox( PositionByOrbitalElementsArray.GetEarthFirstArray(), PositionByOrbitalElementsArray.GetEarthFirstArray().Length), new PositionBySphereEquinox( PositionByOrbitalElementsArray.GetEarthSecondArray(), PositionByOrbitalElementsArray.GetEarthSecondArray().Length), new PositionBySphereEquinox( PositionByOrbitalElementsArray.GetEarthThirdArray(), PositionByOrbitalElementsArray.GetEarthThirdArray().Length), new PositionBySphereEquinox( PositionByOrbitalElementsArray.GetEarthFourthArray(), PositionByOrbitalElementsArray.GetEarthFourthArray().Length), new PositionBySphereEquinox( PositionByOrbitalElementsArray.GetEarthFifthArray(), PositionByOrbitalElementsArray.GetEarthFifthArray().Length) }); }
public static double GetSunEclipticLongitude(double julianDate, bool highPrecision) { if (highPrecision) { return (CoordinateTransformation.MapTo0To360Range (CoordinateTransformation.SetRadiansToDegrees (CalculateEarthPosition(julianDate)))); // Вроде как для высокой точности } else { double julianMillennias = Tools.GetMillenniasCount(julianDate); var sunLongitudeBase = GetCalculatedValue(PositionByOrbitalElementsArray.GetSunLongitudeBaseArray(), julianMillennias); var sunLongitudeFirstGroup = GetCalculatedValue(PositionByOrbitalElementsArray.GetSunLongitudeFirstArray(), julianMillennias); var sunLongitudeSecondGroup = GetCalculatedValue(PositionByOrbitalElementsArray.GetSunLongitudeSecondArray(), julianMillennias); var sunLongitudeThirdGroup = GetCalculatedValue(PositionByOrbitalElementsArray.GetSunLongitudeThirdArray(), julianMillennias); var sunLongitudeFourthGroup = GetCalculatedValue(PositionByOrbitalElementsArray.GetSunLongitudeFourthArray(), julianMillennias); var sunLongitudeFifthGroup = GetCalculatedValue(PositionByOrbitalElementsArray.GetSunLongitudeFifthArray(), julianMillennias); var value = (sunLongitudeBase + sunLongitudeFirstGroup * julianMillennias + sunLongitudeSecondGroup * Tools.GetRaisedValue(julianMillennias, Power.Square) + sunLongitudeThirdGroup * Tools.GetRaisedValue(julianMillennias, Power.Cube) + sunLongitudeFourthGroup * Tools.GetRaisedValue(julianMillennias, Power.Fourth) + sunLongitudeFifthGroup * Tools.GetRaisedValue(julianMillennias, Power.Fifth)) / 100000000; //convert results back to degrees return(CoordinateTransformation.MapTo0To360Range(CoordinateTransformation.SetRadiansToDegrees(value))); } }
public static double GetSunEclipticLatitude(double julianDate) { var julianMillennias = Tools.GetMillenniasCount(julianDate);// (julianDate - 2451545) / 365250; var sunLatitudeBase = GetCalculatedValue(PositionByOrbitalElementsArray.GetSunLatitudeBaseArray(), julianMillennias); var sunLatitudeFirstGroup = GetCalculatedValue(PositionByOrbitalElementsArray.GetSunLatitudeFirstArray(), julianMillennias); double value = (sunLatitudeBase + sunLatitudeFirstGroup * julianMillennias) / 100000000; return(CoordinateTransformation.MapToMinus90To90Range(CoordinateTransformation.SetRadiansToDegrees(value))); }
public static double GetSunRadiusVector(double julianDate) { double julianMillennias = Tools.GetMillenniasCount(julianDate); var sunRadiusBase = GetCalculatedValue(PositionByOrbitalElementsArray.GetSunRadiusBaseArray(), julianMillennias); var sunRadiusFirstGroup = GetCalculatedValue(PositionByOrbitalElementsArray.GetSunRadiusFirstArray(), julianMillennias); var sunRadiusSecondGroup = GetCalculatedValue(PositionByOrbitalElementsArray.GetSunRadiusSecondArray(), julianMillennias); var sunRadiusThirdGroup = GetCalculatedValue(PositionByOrbitalElementsArray.GetSunRadiusThirdArray(), julianMillennias); var sunRadiusFourthGroup = GetCalculatedValue(PositionByOrbitalElementsArray.GetSunRadiusFourthArray(), julianMillennias); return ((sunRadiusBase + sunRadiusFirstGroup * julianMillennias + sunRadiusSecondGroup * Tools.GetRaisedValue(julianMillennias, Power.Square) + sunRadiusThirdGroup * Tools.GetRaisedValue(julianMillennias, Power.Cube) + sunRadiusFourthGroup * Tools.GetRaisedValue(julianMillennias, Power.Fourth)) / 100000000); }