math - 画一条绕地球的路径?

标签 math language-agnostic geometry great-circle

所以基本上我想:

  • 在地球上两个位置之间绘制一条路径,并指定经度和纬度坐标
  • 能够使用多条直线渲染此路径(例如使用 OpenGL)
  • 指定高度,以及能够在球体上划弧的奖励积分(例如飞行路径)
  • 使用哪种语言并不重要。我可以翻译:)

有“大圆”距离公式,但我不确定如何将其应用于这个问题。

最佳答案

好吧,这是我的方法。如果有任何步骤不清楚,请告诉我,我会详细说明。

  1. 我们将从A前往B
  2. 我们对这些向量进行标准化,a = A/|A|, b = B/|B|。 (如果我们留在地面上,|A| 和 |B| 的大小将是地球的半径。)
  3. 我们采用叉积,c = a x b。 我们将围绕这个向量 c 旋转,将 A 传送到 Bc 的大小是AB 之间的角度的余弦:theta = acos(|c|)。很酷吧?
  4. 我们不想一次完成旅行,我们想要n个小步骤,所以我们将theta分开。我们从 A 开始,然后在每一步我们围绕 c 旋转角度 theta/n。
  5. 这给出了一条沿着地面的路径。为了获得弧线(可能在某个高度开始/结束),我们决定在每一步添加多少高度(在球坐标中非常容易 - 在笛卡尔坐标中我们必须缩放矢量)。

关于math - 画一条绕地球的路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12665838/

相关文章:

language-agnostic - 关系数据库中的"Diffing"对象

algorithm - 如何根据反馈减少 Mastermind 中的可能性?

algorithm - 我如何找到阶乘?

java - 总结时四舍五入到小数点后 2 位

flash - 如何反转音量 slider 的音量数学?

android - 在android中使用人脸检测裁剪图像

javascript - Openlayers 几何形状在缩小时看起来扭曲

git - 强制 godep 在 circle build 中通过 SSH 从 github 中 pull 包

Javascript (Math.pow(2,31) | 0) 产生负数

java - 在 Java 和 C 中,负数 Mod 给出负结果