コード例 #1
0
        /// <summary>
        /// Показывает, видно ли когда-нибудь звезду.
        /// </summary>
        /// <param name="s">Звезда.</param>
        /// <param name="gcs">Координаты наблюдателя.</param>
        /// <returns>Потенциальная видимость звезды.</returns>
        public static bool IsEverVisible(Star s, GeographicCS gcs)
        {
            // Широта наблюдателя.
            int degree = gcs.Latitude.Degrees;

            // Если он на экваторе, все звёзды когда-нибудь будут видны.
            if (degree == 0)
            {
                return(true);
            }

            // Координаты ближайшего полюса.
            VerticalCord vertical = (degree > 0)
                ? VerticalCord.GetMax()
                : VerticalCord.GetMin();

            // Минимальная склонение видимости звёзд.
            VerticalCord minLatitude = (vertical - gcs.Latitude) * (-1);

            return((degree > 0)
                ? minLatitude <s.Location.Declination
                               : minLatitude> s.Location.Declination);
        }
コード例 #2
0
        private void SetViewHuman(Human human)
        {
            // Настройка времени.
            // dTPickerCurrDateTime.Value = human.LocalTime;
            // Время не подгружается, а берётся текущее.

            // Настройка координат.
            GeographicCS   gcs = human.Location;
            VerticalCord   lat = gcs.Latitude;
            HorizontalCord lon = gcs.Longitude;

            numLatitudeDegree.Value  = lat.Degrees;
            numLatitudeMinutes.Value = lat.Minutes;
            numLatitudeSeconds.Value = lat.Seconds;

            numLongtitudeDegree.Value =
                (lon.Degrees <= 180)
                ? lon.Degrees
                : lon.Degrees - 360;

            numLongtitudeMinutes.Value = lon.Minutes;
            numLongtitudeSeconds.Value = lon.Seconds;
        }
コード例 #3
0
        /// <summary>
        /// Показывает, постоянно линаходится звезда над горизонтом.
        /// </summary>
        /// <param name="s">Звезда</param>
        /// <param name="gcs">Земные координаты наблюдателя</param>
        /// <returns>Постоянство нахождения над горизонтом</returns>
        public static bool IsAlwaysVisible(Star s, GeographicCS gcs)
        {
            // Широта наблюдателя.
            int degree = gcs.Latitude.Degrees;

            // Если он на экваторе, нет незаходящих звёзд.
            if (degree == 0)
            {
                return(false);
            }

            // Координаты ближайшего полюса.
            VerticalCord vertical = (degree > 0)
                ? VerticalCord.GetMax()
                : VerticalCord.GetMin();

            // Минимальное склонение незаходящих звёзд.
            VerticalCord minLatitude = vertical - gcs.Latitude;

            return((degree > 0)
                ? minLatitude <s.Location.Declination
                               : minLatitude> s.Location.Declination);
        }
コード例 #4
0
 public Human(DateTime dateTime, GeographicCS location)
 {
     LocalTime = dateTime;
     Location  = location;
 }