コード例 #1
0
ファイル: ChineseCalendar.cs プロジェクト: zeno1248/Showcase
        public static D2Coordinate Equatorial2Horizontal(double LocalHourAngle, double Delta, double Latitude)
        {
            LocalHourAngle = HoursToRadians(LocalHourAngle);
            Delta          = DegreesToRadians(Delta);
            Latitude       = DegreesToRadians(Latitude);

            D2Coordinate Horizontal = new D2Coordinate();

            Horizontal.X = RadiansToDegrees(Math.Atan2(Math.Sin(LocalHourAngle), Math.Cos(LocalHourAngle) * Math.Sin(Latitude) - Math.Tan(Delta) * Math.Cos(Latitude)));
            if (Horizontal.X < 0)
            {
                Horizontal.X += 360;
            }
            Horizontal.Y = RadiansToDegrees(Math.Asin(Math.Sin(Latitude) * Math.Sin(Delta) + Math.Cos(Latitude) * Math.Cos(Delta) * Math.Cos(LocalHourAngle)));

            return(Horizontal);
        }
コード例 #2
0
ファイル: ChineseCalendar.cs プロジェクト: zeno1248/Showcase
        public static D2Coordinate Ecliptic2Equatorial(double Lambda, double Beta, double Epsilon)
        {
            Lambda  = DegreesToRadians(Lambda);
            Beta    = DegreesToRadians(Beta);
            Epsilon = DegreesToRadians(Epsilon);

            D2Coordinate Equatorial = new D2Coordinate();

            Equatorial.X = RadiansToHours(Math.Atan2(Math.Sin(Lambda) * Math.Cos(Epsilon) - Math.Tan(Beta) * Math.Sin(Epsilon), Math.Cos(Lambda)));
            if (Equatorial.X < 0)
            {
                Equatorial.X += 24;
            }
            Equatorial.Y = RadiansToDegrees(Math.Asin(Math.Sin(Beta) * Math.Cos(Epsilon) + Math.Cos(Beta) * Math.Sin(Epsilon) * Math.Sin(Lambda)));

            return(Equatorial);
        }
コード例 #3
0
ファイル: ChineseCalendar.cs プロジェクト: zeno1248/Showcase
        public static D2Coordinate Equatorial2Ecliptic(double Alpha, double Delta, double Epsilon)
        {
            Alpha   = HoursToRadians(Alpha);
            Delta   = DegreesToRadians(Delta);
            Epsilon = DegreesToRadians(Epsilon);

            D2Coordinate Ecliptic = new D2Coordinate();

            Ecliptic.X = RadiansToDegrees(Math.Atan2(Math.Sin(Alpha) * Math.Cos(Epsilon) + Math.Tan(Delta) * Math.Sin(Epsilon), Math.Cos(Alpha)));
            if (Ecliptic.X < 0)
            {
                Ecliptic.X += 360;
            }
            Ecliptic.Y = RadiansToDegrees(Math.Asin(Math.Sin(Delta) * Math.Cos(Epsilon) - Math.Cos(Delta) * Math.Sin(Epsilon) * Math.Sin(Alpha)));

            return(Ecliptic);
        }
コード例 #4
0
ファイル: ChineseCalendar.cs プロジェクト: zeno1248/Showcase
        public static D2Coordinate Equatorial2Galactic(double Alpha, double Delta)
        {
            Alpha = 192.25 - HoursToDegrees(Alpha);
            Alpha = DegreesToRadians(Alpha);
            Delta = DegreesToRadians(Delta);

            D2Coordinate Galactic = new D2Coordinate();

            Galactic.X = RadiansToDegrees(Math.Atan2(Math.Sin(Alpha), Math.Cos(Alpha) * Math.Sin(DegreesToRadians(27.4)) - Math.Tan(Delta) * Math.Cos(DegreesToRadians(27.4))));
            Galactic.X = 303 - Galactic.X;
            if (Galactic.X >= 360)
            {
                Galactic.X -= 360;
            }
            Galactic.Y = RadiansToDegrees(Math.Asin(Math.Sin(Delta) * Math.Sin(DegreesToRadians(27.4)) + Math.Cos(Delta) * Math.Cos(DegreesToRadians(27.4)) * Math.Cos(Alpha)));

            return(Galactic);
        }
コード例 #5
0
ファイル: ChineseCalendar.cs プロジェクト: zeno1248/Showcase
        public static D2Coordinate Horizontal2Equatorial(double Azimuth, double Altitude, double Latitude)
        {
            //Convert from degress to radians
            Azimuth  = DegreesToRadians(Azimuth);
            Altitude = DegreesToRadians(Altitude);
            Latitude = DegreesToRadians(Latitude);

            D2Coordinate Equatorial = new D2Coordinate();

            Equatorial.X = RadiansToHours(Math.Atan2(Math.Sin(Azimuth), Math.Cos(Azimuth) * Math.Sin(Latitude) + Math.Tan(Altitude) * Math.Cos(Latitude)));
            if (Equatorial.X < 0)
            {
                Equatorial.X += 24;
            }
            Equatorial.Y = RadiansToDegrees(Math.Asin(Math.Sin(Latitude) * Math.Sin(Altitude) - Math.Cos(Latitude) * Math.Cos(Altitude) * Math.Cos(Azimuth)));

            return(Equatorial);
        }
コード例 #6
0
ファイル: ChineseCalendar.cs プロジェクト: zeno1248/Showcase
        public static D2Coordinate Galactic2Equatorial(double l, double b)
        {
            l -= 123;
            l  = DegreesToRadians(l);
            b  = DegreesToRadians(b);

            D2Coordinate Equatorial = new D2Coordinate();

            Equatorial.X  = RadiansToDegrees(Math.Atan2(Math.Sin(l), Math.Cos(l) * Math.Sin(DegreesToRadians(27.4)) - Math.Tan(b) * Math.Cos(DegreesToRadians(27.4))));
            Equatorial.X += 12.25;
            if (Equatorial.X < 0)
            {
                Equatorial.X += 360;
            }
            Equatorial.X = DegreesToHours(Equatorial.X);
            Equatorial.Y = RadiansToDegrees(Math.Asin(Math.Sin(b) * Math.Sin(DegreesToRadians(27.4)) + Math.Cos(b) * Math.Cos(DegreesToRadians(27.4)) * Math.Cos(l)));

            return(Equatorial);
        }