gpt4 book ai didi

python - 单位球体上两个 "P = (x, y, z)"点之间的大圆距离

转载 作者:行者123 更新时间:2023-12-02 17:04:49 27 4
gpt4 key购买 nike

我需要使用单位球体上的坐标 (x, y, z) 计算两点之间的距离。

两者都是Haversine and Great Arc Distance使用 φλ(经度和纬度)。我如何为 x、y、z 编写这些公式?

最佳答案

推广到半径为 R 的球体,以便表达式和变量的物理维度始终显而易见,我们绘制下图,您可以看到,在包含三个点的平面上,球面上的点AB以及点O,球心,也是最小长度的弧连接 AB

enter image description here

引用图中的文字,你可以这样计算点AB之间的距离:

  1. 计算距离 Δ = math.sqrt((x_B-x_A)**2+(y_B-y_A)**2+(z_B-z_A)**2)
  2. 计算 Δ 一半的角度,φ = math.asin((Δ/2/R))
  3. 大圆上的距离是 gc_dist = 2*phi*R

(您可能想使用 R = 1)。

关于python - 单位球体上两个 "P = (x, y, z)"点之间的大圆距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52210911/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com