如何计算地球和太阳之间的角度?

Rof*_*ion 7 java algorithm

对于我的应用程序,我需要计算两个不同行之间的角度:

1)第一条线位于地球上由经度和纬度定义的点与太阳中心之间.

2)第二条线位于地球上由经度和纬度定义的点与月球表面之间距离地球的距离较小的点之间.

我不知道应该如何从那里开始.任何提示?

Aln*_*tak 5

假设你实际上已经计算了所有三个兴趣点[*],O观察者(在地球上)的位置在哪里,S是太阳的位置,M是月球上的点,然后:

OM . OS = |OM| * |OS| * cos(theta)
Run Code Online (Sandbox Code Playgroud)

或者,换句话说,要计算theta,取两个向量的点积,将该结果除以这两个向量的大小,然后取结果的反余弦.

[*]你的问题只询问两条线之间的角度 - 如果你想知道如何计算任何时刻的实际线条,那么你应该重写你的问题.