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); }
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); }
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); }
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); }
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); }
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); }