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