private void PrepareForm() { lblName.Text = star.Name; if (IO.LoadImage(star.Url, pBoxPhoto, false)) { pBoxPhoto.Image = Properties.Resources.star; } lblConstellation.Text = Filter.GetConstellationFromStar(star, sky).ToString(); lblDist.Text = $"{Editor.Round(star.Distance, 3)} Пк"; lblMagn.Text = $"{Editor.Round(star.Magnitude, 3)} m"; lblAbsMagn.Text = $"{Editor.Round(star.AbsMagnitude, 3)} M"; lblDecl.Text = star.Location.Declination.ToString(); lblRA.Text = star.Location.RightAscension.ToString(); HorizontalCS horCS = star.GetCurrLocation(human); lblAzimuth.Text = horCS.Azimuth.ToString(); lblAltitude.Text = horCS.Altitude.ToString(); if (!star.IsEverVisible(human)) { lblVisibility.Text = "Всегда невидима для вашей местности"; } else if (star.IsAlwaysVisible(human)) { lblVisibility.Text = "Всегда над горизонтом"; } else if (AstroMath.IsStarVisible(horCS)) { lblVisibility.Text = "Сейчас над горизонтом"; } else { lblVisibility.Text = "Сейчас не видно"; } }
/// <summary> /// Показывает, видима ли звезда для наблюдателя. /// </summary> /// <param name="horCS">Горизонтальная система координат.</param> /// <returns>Видима ли звезда</returns> public static bool IsStarVisible(HorizontalCS horCS) { return(horCS.Altitude.GetDegrees() >= 0); }
/// <summary> /// Показывает, видима ли звезда для наблюдателя. /// </summary> /// <param name="s">Звезда</param> /// <param name="h">Наблюдатель</param> /// <returns>Видима ли звезда</returns> public static bool IsStarVisible(Star s, Human h) { HorizontalCS horCS = GetCurrentStarLocation(s, h); return(horCS.Altitude.GetDegrees() >= 0); }