惑星の位置

 軌道要素から、惑星の位置を求めるには、
 1)平均黄経Lと近日点黄経ω'から、平均近点角MAを求める。
 2)平均近点角MAと軌道離心率eから、離心近点角Eを求める。
 3)離心近点角Eと軌道離心率eから、真近点角TAを求める。
 4)真近点角TA、軌道長半径a、軌道離心率eから、惑星までの距離rを求める。
 5)真近点角TA、近日点黄経ω'と昇交点黄経Ωから、黄緯引数Uを求める。
 6)惑星までの距離r、黄緯引数U、昇交点黄経Ω、軌道傾斜角iから、黄道直交座標を求める。

 まず、平均近点角MAを、
 MA=radians(mod(L−ω'+360 ,360)) により、正の値とし、単位を度からラジアンに変換して求める。

 次に、離心近点角Eの解の誤差を±0.00001として、この絶対値を、浮動小数点で、Eps=1e-5 と指定する。
 初期値E1、E2 を E1=MA+π、E2=MA とし、
 もし、abs(E2−E1)>Eps のときは、E1=E2、E2=MA+e×sin(E1) の計算を繰り返す。
 そして、E2−E1が±Eps以内になったときの E2 が、離心近点角Eになる。
 離心近点角Eである E2 を用いて、
 TA=atan(sqrt(1−pow(e,2))×sin(E2)/(cos(E2)−e)) から、真近点角TAを求め、
 TA=mod(degrees(TA)+360 ,360)で、単位をラジアンから度に変換した正の値にする。

 radians(N)は、角度Nの単位を度からラジアンに変換した値を返す。
 radians(N)=π×N/180
 mod(M ,D)は、MをDで整数除算したときの余りを返す。
 POV-Rayでは、実数を浮動小数点で表すことができる。
 例)0.00001=1e-5
 POV-Rayでは、πをpiと記述して使用する。 
 abs(N)は、Nの絶対値を返す。
 atan(N)は、tanの逆関数で、タンジェントの値がNになる角度をラジアンで返す。
 POV-Rayでは、atan(N)を使わず、atan2(M ,D)を使用する。
 このときN=M/Dとなる。
 sqrt(N)は、Nの平方根を返す。
 pow(A ,N)は、AのN乗の値を返す。
 degrees(N)は、角度Nの単位をラジアンから度に変換した値を返す。
 degrees(N)=180×N/π

 次に、軌道長半径a、軌道離心率e、真近点角TAから、惑星までの距離rを、
 r=a×(1−pow(e,2))/(1+e×cos(radians(TA))) で求め、
 黄緯引数Uを、U=mod(TA+ω'−Ω+360 ,360) から求めて、
 惑星の位置を、惑星までの距離r、黄緯引数U、昇交点黄経Ω、軌道傾斜角iから、黄道直交座標(x,y,z)として求める。

x=r×(cos(radians(U))×cos(radians(Ω))
 −sin(radians(U))×sin(radians(Ω))×cos(radians(i)))
y=r×(cos(radians(U))×sin(radians(Ω))
 +sin(radians(U))×cos(radians(Ω))×cos(radians(i)))
z=r×sin(radians(U))×sin(radians(i))