Planetary Positions with VSOP87Written by User 1Last Updated: August 25, 2019, 03:05 pm (UTC)
Originally created on July 25, 2012
VSOP87 provides a method for computing the positions of the 8 planets (and the Sun) efficiently and accurately without the major headaches that astronomers from past centuries had to deal with.
文中提到关于黄道的计算方法,不容易理解。现查阅相关资料,将能够将VSOP87方法准确描述的vb.net代码提供出来,供大家参考。
' Body Name : Earth
' VSOP87 Series Version : C
' Coordinates Type/Epoch : Rectangular XYZ-Coordinates
' HELIOCENTRIC DYNAMICAL ECLIPTIC/EQUINOX OF DATE
'
' Ephemeris Date Span : 2000 BC < Date < 6000 AD
Public Function Earth_C_X0 (ByVal t As Double) As Double
dim X0 as double
X0 += 0.99986069925 * cos(1.75347045757 + 6283.31966747490 * t)
X0 += 0.02506324281 * cos(4.93819429098 + 0.24381748350 * t)
X0 += 0.00835274807 * cos(1.71033525539 + 12566.39551746630 * t)
...
X0 += 0.00000000050 * cos(2.84763289309 + 60284.16619777939 * t)
Return X0
End Function
Public Function Earth_C_X1 (ByVal t As Double) As Double
Dim X1 As Double
X1 += 0.00154550744 * cos(0.64605836878 + 0.24381748350 * t)
X1 += 0.00051503383 * cos(6.00263199393 + 12566.39551746630 * t)
...
X1 += 0.00000000020 * cos(2.85391796921 + 9070.36269133230 * t)
Return X1 * t
End Function
...
Public Function Earth_C_Z4 (ByVal t As Double) As Double
Dim Z4 As Double
Z4 += 0.00000000004 * cos(0.79662198849 + 6438.49624942560 * t)
Z4 += 0.00000000005 * cos(0.84308705203 + 1047.74731175470 * t)
Z4 += 0.00000000005 * cos(0.05711572303 + 84334.66158130829 * t)
Z4 += 0.00000000003 * cos(3.46779895686 + 6279.55273164240 * t)
Z4 += 0.00000000003 * cos(2.89822201212 + 6127.65545055720 * t)
Return Z4 * t * t * t * t
End Function
Public Function Earth_C_Z5 (ByVal t As Double) As Double
Dim Z5 As Double
Return Z5 * t * t * t * t * t
End Function
因为代码较长,共有4567行,上面仅仅给出代码的头部和尾部。
但作为计算爱好和研究来讲,起一个抛砖引玉的作用。
参考文献:
Planetary Positions with VSOP87
算法系列之十八:用天文方法计算二十四节气(上)
VSOP87