2

所以基本上我想:

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

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

4

1 回答 1

3

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

  1. 我们要从AB
  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. 这提供了一条沿地面的路径。为了得到一个弧线(可能在某个高度开始/结束),我们决定在每一步添加多少高度(在球坐标中很容易——在笛卡尔坐标中,我们必须缩放向量)。
于 2012-10-01T02:02:17.790 回答