heliocentric function
J2000 heliocentric coordinates of Pluto.
Returns (lon, lat, r) where lon/lat are in radians and r is in AU.
Implementation
({double lon, double lat, double r}) heliocentric(double jde) {
final t = j2000Century(jde);
final j = (34.35 + 3034.9057 * t) * _p;
final s = (50.08 + 1222.1138 * t) * _p;
final pp = (238.96 + 144.96 * t) * _p;
var l = 0.0, b = 0.0, r = 0.0;
for (final row in _t37) {
final alpha = row.i * j + row.j * s + row.k * pp;
final sa = math.sin(alpha);
final ca = math.cos(alpha);
l += row.lA * sa + row.lB * ca;
b += row.bA * sa + row.bB * ca;
r += row.rA * sa + row.rB * ca;
}
l = (238.958116 + 144.96 * t + l) * _p;
b = (-3.908239 + b) * _p;
r += 40.7241346;
return (lon: l, lat: b, r: r);
}