DotNet.Astronomy.Class.BodyRings - Elite-Dangerous-Almanac/Almanac-Core GitHub Wiki
EliteDangerousAlmanac / Astronomy / BodyRings
Defined in: dotnet/src/EliteDangerousAlmanac/Astronomy/BodyRings.cs:33
What a ring is made of, how thick it lies, and how fast it turns.
Every calculation reads the figures the scan states, and answers null where the ring states none it can use.
The maths is ported from the Canonn Research Group's canonn-signals, whose ring model is their own observational research. See ATTRIBUTIONS.md for credit and licence terms.
constNominalRadiusFraction:double=3d / 8d
Defined in: dotnet/src/EliteDangerousAlmanac/Astronomy/BodyRings.cs:37
Where along a ring its period is taken, as a fraction of its width.
See Dynamics for where the figure comes from.
constVisibleRingMaxWidth:double=1e9
Defined in: dotnet/src/EliteDangerousAlmanac/Astronomy/BodyRings.cs:45
The width below which the game draws a ring whatever its density, in metres.
See IsInvisible for where the figure comes from.
constVisibleRingMinSurfaceDensity:double=0.1
Defined in: dotnet/src/EliteDangerousAlmanac/Astronomy/BodyRings.cs:41
The surface density at or above which the game draws a ring, in tonnes a square kilometre.
See IsInvisible for where the figure comes from.
staticDynamics(ring,primary):RingDynamics?
Defined in: dotnet/src/EliteDangerousAlmanac/Astronomy/BodyRings.cs:144
How fast one ring travels around what it orbits.
The ring, as a scan states it.
The body the ring is around, as a scan states it.
The figures, or null where the ring states no usable radii or the primary states no mass.
The game turns a ring as one rigid sheet. A real ring shears, because every particle keeps its own orbit and the inner edge is the fastest. Elite Dangerous gives the whole ring one period instead, which makes the outer edge the fast one. That is the opposite of the physical answer, and the reason the speeds cannot be computed edge by edge.
The one period is recovered by applying Kepler's third law at a nominal radius some way across the ring: nominal = inner + (outer - inner) * 3/8, then T = 2*pi*sqrt(nominal^3 / GM). The three eighths is a fitted constant, not a derivation. The Canonn Research Group arrived at it from in-game measurements, having also weighed 1/e (about 0.368) and 1/phi^2 (about 0.382), which it sits between.
Two things bound how exact the result can be. The journal writes ring radii to four significant figures, and the constant is a fit to observations rather than an exact value. Read the figures as close, not exact.
ArgumentNullException
Either the ring or the primary is absent.
staticIsInvisible(ring):bool
Defined in: dotnet/src/EliteDangerousAlmanac/Astronomy/BodyRings.cs:105
Whether a ring is spread too thin over too wide a span to be seen.
The ring, as a scan states it.
bool
true where the ring is both wide and thin. A ring stating too little to judge is not called invisible.
A ring both very wide and very diffuse has nothing to catch the light, and the game draws nothing where the scan states a ring. The test is the Canonn Research Group's own observational finding, not a rule read out of the game: wider than VisibleRingMaxWidth and thinner than VisibleRingMinSurfaceDensity. Either one alone still draws.
ArgumentNullException
The ring is absent.
staticParticleDensity(ringClass):double
Defined in: dotnet/src/EliteDangerousAlmanac/Astronomy/BodyRings.cs:55
How dense one ring's particles are, in kilograms a cubic metre.
string
The ring's class, such as eRingClass_MetalRich.
double
The density the class implies. A class naming no rock or metal is ice.
ArgumentNullException
The class is absent.
staticRocheLimits(ring,primary):RocheLimits?
Defined in: dotnet/src/EliteDangerousAlmanac/Astronomy/BodyRings.cs:183
Where the body a ring is around pulls that ring's particles apart.
The ring, as a scan states it.
The body the ring is around, as a scan states it.
The two limits, or null where the primary states too little.
A ring sits inside the fluid limit, which is why it stays a ring rather than gathering into a moon.
ArgumentNullException
Either the ring or the primary is absent.
staticSurfaceDensity(ring):double?
Defined in: dotnet/src/EliteDangerousAlmanac/Astronomy/BodyRings.cs:71
How much mass one ring carries over its area, in tonnes a square kilometre.
The ring, as a scan states it.
double?
The surface density, or null where the ring states no usable mass or radii.
ArgumentNullException
The ring is absent.