I'm getting much better accuracy sticking with my original gravity simulator, just with smaller time increments, than I was with the Runge-Kutta 4 method. The PlutoStateTable gets a bit larger (51 state vectors instead of 41), but the accuracy is so much higher. Removed the Runge-Kutta code because I won't be going back to it.
Astronomy Engine examples in C#
Culmination
Finds when the Sun, Moon, and planets reach their highest position in the sky on a given date, as seen by an observer at a specified location on the Earth. Culmination is also the moment a body crosses the meridian, the imaginary semicircle in the sky that passes from due north on the horizon, through the zenith (straight up), and then toward due south on the horizon.
Horizon Intersection
This is a more advanced example. It shows how to use coordinate transforms to find where the ecliptic intersects with an observer's horizon at a given date and time.
Lunar Eclipse
Calculates details about the first 10 partial/total lunar eclipses after the given date and time.
Moon Phase Calculator
This example shows how to determine the Moon's current phase, and how to predict when the next few quarter phases will occur.
Positions
Calculates equatorial and horizontal coordinates of the Sun, Moon, and planets.
Rise/Set
Shows how to calculate sunrise, sunset, moonrise, and moonset times.
Seasons
Calculates the equinoxes and solstices for a given calendar year.
Triangulate
Given the geographic coordinates of two observers, and angular
directions they are looking in, determines geographic coordinates
of the point they are both looking at. This example demonstrates
use of the geoid functions VectorObserver and ObserverVector
that convert between geographic coordinates and vectors.
API Reference
Complete documentation for all the functions and types available in the C# version of Astronomy Engine.