免費論壇 繁體 | 簡體
Sclub交友聊天~加入聊天室當版主
分享
返回列表 发帖

[几何] 球面两点经纬度确定球面距离和球面大圆

以 $(x,y)$ 表示球面上的经纬度,其中 $x$ 是经度,东经为正,西经为负;$y$ 是纬度,北纬为正,南纬为负。若球半径为 $R$,球面上两点 $A$、$B$ 的经纬度分别是 $(x_A,y_A)$,$(x_B,y_B)$,求点 $A$、$B$ 的球面距离。若直线 $AB$ 不过球心,点 $A$、$B$ 确定的球面大圆上的一点 $P$ 的经纬度是 $(x,y)$,求 $x$、$y$ 所满足的方程。

第一个问题实际应用就是知道地球上两个城市的经纬度,求它们之间的距离。
分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友

问题1,2,要不都转化为空间直角坐标,球面方程和平面方程联列?
问题1很老的高中教材也有,设地轴为NS,在面ANS内过A作NS垂线,垂足为P,在面BNS内过B作NS垂线,垂足为Q,异面直线AP,BQ距离就是PQ,所成角可由AB两个经度得到,AP,BQ由纬度和地球半径得到,这样解得AB线段距离
得圆心角AOB

TOP

回复 2# realnumber

你是不是在讲“三余弦定理”?

TOP

回复 3# kuing

是有三个余弦,不晓得叫这个名字

TOP

推导了一下大圆方程,挺好玩的,不知对不对。

首先研究有一点在赤道上的情形,假设 `A(0,0)`, `B(x_B,y_B)`,设 `AB` 所在的大圆与赤道所成角为 `\varphi`,则由几何关系易知
\[\tan\varphi=\frac{\tan y_B}{\sin x_B},\]所以此时大圆的方程就是
\[\frac{\tan y}{\sin x}=\frac{\tan y_B}{\sin x_B},\]然后,绕南北极的连线旋转,可得:当 `A(x_A,0)`, `B(x_B,y_B)` 时的方程为
\[\frac{\tan y}{\sin(x-x_A)}=\frac{\tan y_B}{\sin(x_B-x_A)},\](下午的时候我想当然以为将 `y` 也变成 `y-y_A` 就是一般的方程,最后发现我错了,绕其他轴旋转并非这么简单)

现在考虑一般情况,当 `A(x_A,y_A)`, `B(x_B,y_B)` 都不在赤道上时,设 `AB` 所在的大圆与赤道交于 `C(x_0,0)`,根据上述结论可知
\[\frac{\tan y_A}{\sin(x_A-x_0)}=\frac{\tan y_B}{\sin(x_B-x_0)},\quad(*)\]且大圆的方程为
\[\frac{\tan y}{\sin(x-x_0)}=\frac{\tan y_B}{\sin(x_B-x_0)},\quad(**)\]那么只要消掉 `x_0` 即可,展开式 (*) 整理可得
\[\left( \frac{\sin x_A}{\tan y_A}-\frac{\sin x_B}{\tan y_B} \right)\cos x_0-\left( \frac{\cos x_A}{\tan y_A}-\frac{\cos x_B}{\tan y_B} \right)\sin x_0=0,\]同理展开式 (**) 为
\[\left( \frac{\sin x}{\tan y}-\frac{\sin x_B}{\tan y_B} \right)\cos x_0-\left( \frac{\cos x}{\tan y}-\frac{\cos x_B}{\tan y_B} \right)\sin x_0=0,\]所以
\[\left( \frac{\sin x}{\tan y}-\frac{\sin x_B}{\tan y_B} \right)\left( \frac{\cos x_A}{\tan y_A}-\frac{\cos x_B}{\tan y_B} \right)=\left( \frac{\sin x_A}{\tan y_A}-\frac{\sin x_B}{\tan y_B} \right)\left( \frac{\cos x}{\tan y}-\frac{\cos x_B}{\tan y_B} \right),\]展开化简整理后,最终结果为
\[\sin(x-x_A)\tan y_B-\sin(x-x_B)\tan y_A+\sin(x_A-x_B)\tan y=0.\]
真漂亮的结果
$\href{https://kuingggg.github.io/}{\text{About Me}}$

TOP

问题1,2,要不都转化为空间直角坐标,球面方程和平面方程联列?
问题1很老的高中教材也有,设地轴为NS,在 ...
realnumber 发表于 2019-8-31 16:59
问题 2 转化为空间直角坐标也是个不错的选择,但无需联立。

化为空间直角坐标就是 `A(\cos x_A\cos y_A,\sin x_A\cos y_A,\sin y_A)`, `B(\cos x_B\cos y_B,\sin x_B\cos y_B,\sin y_B)` 以及其大圆上任意点 `P(\cos x\cos y,\sin x\cos y,\sin y)`,因为 `A`, `B`, `P` 以及球心 `(0,0,0)` 四点共面,于是有
\[
\begin{vmatrix}
\cos x_A\cos y_A & \sin x_A\cos y_A & \sin y_A & 1\\
\cos x_B\cos y_B & \sin x_B\cos y_B & \sin y_B & 1\\
\cos x\cos y & \sin x\cos y & \sin y & 1\\
0 & 0 & 0 & 1
\end{vmatrix}=0,
\]这就是大圆方程,也很漂亮。

将此行列式展开,果然也能化为楼上的方程,看来那推导也是正确嘀!

TOP

球面大圆的方程我就是用 6# 的方法,不过方程中最好不要用正切,出现 $90^\circ$ 就会出问题。
球面距离可以用三面角第一余弦定理去做,结论是:$R\arccos(\sin y_A\sin y_B+\cos y_A\cos y_B\cos(x_A-x_B))$。

TOP

回复 7# hejoseph

嗯,用 tan 是有 90 度问题,不过胜在形式够简洁,牺牲几个特殊点也是值得的,需要 90 度时将 tan 写成 sin/cos 再去分母即可。

TOP

返回列表 回复 发帖