Esempio n. 1
0
        public HorizontalCoordinates ToHorizontalCoordinates(Radian latitude, Radian longitude, DateTime utcTime)
        {
            var hourAngle = new SunInfoCalculator(utcTime).HourAngle(longitude);

            double rightSide1 = Math.Sin(latitude.Value) * Math.Sin(Declination.Value) +
                                Math.Cos(latitude.Value) * Math.Cos(Declination.Value) * Math.Cos(hourAngle.Value);

            double rightSide2 = Math.Cos(latitude.Value) * Math.Sin(Declination.Value) -
                                Math.Sin(latitude.Value) * Math.Cos(Declination.Value) * Math.Cos(hourAngle.Value);

            double rightSide3 = -Math.Cos(Declination.Value) * Math.Sin(hourAngle.Value);

            PolarCoordinates polarCoordinates = new CartesianCoordinates(rightSide2, rightSide3).ToPolarCoordinates();
            var azimuth = polarCoordinates.Angle;
            if (azimuth.Value < 0)
            {
                azimuth = new Degree(360.0).ToRadian() - (-azimuth);
            }

            polarCoordinates = new CartesianCoordinates(polarCoordinates.Radius, rightSide1).ToPolarCoordinates();
            var altitude = polarCoordinates.Angle;

            double mustBe1 = polarCoordinates.Radius;

            return new HorizontalCoordinates(azimuth, altitude);
        }
Esempio n. 2
0
 public EquatorialCoordinates ToEquatorialCoordinates(Radian latitude)
 {
     throw new NotImplementedException();
 }
Esempio n. 3
0
 public HorizontalCoordinates(Radian azimuth, Radian altitude)
 {
     _azimuth = azimuth;
     _altitude = altitude;
 }
Esempio n. 4
0
 public Radian HourAngle(Radian longitude)
 {
     var hourAngle = GreenwichSiderealTime - (-longitude) - RightAscension;
     if (hourAngle.Value < 0)
     {
         hourAngle = new Degree(TimeSpan.FromHours(24.0)).ToRadian() + hourAngle;
     }
     return hourAngle;
 }
Esempio n. 5
0
 public EquatorialCoordinates(Radian rightAscension, Radian declination)
 {
     _rightAscension = rightAscension;
     _declination = declination;
 }