如何计算球面上两点间的弧长?
球面上两点之间的弧长,如何计算?
圆上两点间的弧长
圆上两点间的弧长等于两点间圆心角的弧度数乘以半径。
球上两点的弧长
假设球的半径为R,球上两点和球心确定的平面与球的截面是以球心为圆心,半径为R的圆。要求弧长只需求两点对应的圆心角弧度。假如两点的坐标分别为
(x_1,y_1,z_1),(x_2,y_2,z_2)\\
那么两点间的弦长为
d=\sqrt{(x_1-x_2)^2+(y_1-y_2)^2+(z_1-z_2)^2}\\
所以圆心角弧度
\begin{aligned} \theta&=2\cdot\arcsin\frac{d}{2R}\\ &=2\cdot\arcsin\frac{\sqrt{(x_1-x_2)^2+(y_1-y_2)^2+(z_1-z_2)^2}}{2R} \end{aligned}\\
所以弧长为
\begin{aligned} l&=\theta\cdot{R}\\ &=2R\cdot\arcsin\frac{\sqrt{(x_1-x_2)^2+(y_1-y_2)^2+(z_1-z_2)^2}}{2R} \end{aligned}\\
已知半径为r的球上面两点
A:(r\cdot\sin\theta_1\cdot\cos\phi_1,r\cdot\sin\theta_1\cdot\sin\phi_1,r\cdot\cos\theta_1)\\ B:(r\cdot\sin\theta_2\cdot\cos\phi_2,r\cdot\sin\theta_2\cdot\sin\phi_2,r\cdot\cos\theta_2)\\
求弧长?
设圆心为O,那么
\begin{aligned} \overrightarrow{OA}\times\overrightarrow{OB}=&(r^2\cdot\sin\theta_1\sin\phi_1\cos\theta_2-r^2\cdot\sin\theta_2\sin\phi_1\cos\theta_1,\\ &\quad r^2\cdot\cos\theta_1\sin\theta_2\cos\phi_2-r^2\cdot\sin\theta_1\cos\phi_1\cos\theta_2,\\ &\quad r^2\cdot\sin\theta_1\cos\phi_1\sin\theta_2\sin\phi_2-r^2\cdot\sin\theta_1\sin\phi_1\sin\theta_2\cos\phi_2) \end{aligned}\\
令
\begin{aligned} a&=r^2\cdot\sin\theta_1\sin\phi_1\cos\theta_2-r^2\cdot\sin\theta_2\sin\phi_1\cos\theta_1\\ b&=r^2\cdot\cos\theta_1\sin\theta_2\cos\phi_2-r^2\cdot\sin\theta_1\cos\phi_1\cos\theta_2\\ c&=r^2\cdot\sin\theta_1\cos\phi_1\sin\theta_2\sin\phi_2-r^2\cdot\sin\theta_1\sin\phi_1\sin\theta_2\cos\phi_2 \end{aligned}\\
则
\begin{aligned} \frac{1}{2}r^2\cdot\sin\Phi\cdot\frac{c}{\sqrt{a^2+b^2+c^2}}&=\frac{1}{2}r\cdot\sin\theta_1\cdot r\cdot\sin\theta_2\cdot\sin|\phi_1-\phi_2|\\\sin\Phi&=\frac{\sqrt{a^2+b^2+c^2}}{c}\cdot\sin\theta_1\cdot\sin\theta_2\cdot\sin|\phi_1-\phi_2|\\\end{aligned}\\
当 |\phi_1-\phi_2|>\frac{\pi}{2} 或 |\theta_1-\theta_2|>\frac{\pi}{2} 时,
\Phi=\frac{\pi}{2}+\arcsin(\frac{\sqrt{a^2+b^2+c^2}}{c}\cdot\sin\theta_1\cdot\sin\theta_2\cdot\sin|\phi_1-\phi_2|)\\
否则
\Phi=\arcsin(\frac{\sqrt{a^2+b^2+c^2}}{c}\cdot\sin\theta_1\cdot\sin\theta_2\cdot\sin|\phi_1-\phi_2|)\\
弧长为 \Phi\cdot{r}