예제 #1
0
        CoordPointCollection GetdayAndNightLineVertices(GeoPoint sunLocation, double step)
        {
            CoordPointCollection result    = new CoordPointCollection();
            IList <double>       latitudes = DayAndNightLineCalculator.GetDayAndNightLineLatitudes(sunLocation.Latitude, sunLocation.Longitude, step);
            double lon = -180;

            foreach (double lat in latitudes)
            {
                result.Add(new GeoPoint(lat, lon));
                lon += step;
            }
            return(result);
        }
예제 #2
0
        void UpdateDayAndNightLine()
        {
            double[]             sun3DPosition           = DayAndNightLineCalculator.CalculateSunPosition(ActualDateTime);
            GeoPoint             sunPosition             = new GeoPoint(sun3DPosition[1], sun3DPosition[0]);
            GeoPoint             moonPosition            = GetOppositePoint(sunPosition);
            CoordPointCollection dayAndNightLineVertices = GetdayAndNightLineVertices(sunPosition, 0.1);
            bool isNorthNight = DayAndNightLineCalculator.CalculateIsNorthNight(sun3DPosition);

            if (isNorthNight)
            {
                AddNorthContour(dayAndNightLineVertices);
            }
            else
            {
                AddSouthContour(dayAndNightLineVertices);
            }
            SunPosition             = sunPosition;
            MoonPosition            = moonPosition;
            DayAndNightLineVertices = dayAndNightLineVertices;
        }