gpt4 book ai didi

c++ - 如何计算方位角

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:59:17 26 4
gpt4 key购买 nike

我有很多 3D 平面。我需要知道的是计算方位角的方法。我希望,我可以通过使用每个平面的投影法 vector (我的平面方程是 ax+by-z+c=0;所以这个平面的法 vector 是 a、b、-1)到 XY 来计算方位角飞机。然后,我可以从 Y 轴计算方位角。但是,我不知道投影到 XY 平面后如何获得投影的法 vector 。然后,我可以应用给出两个 vector 之间的角度的方程来计算我想要的 vector 与 y 轴的角度。

另一方面,我发现,方位角定义为沿平面最陡坡度的任何线与北方向(此处为 Y 轴)之间的角度。这个定义是否会遵循我提出的采用法 vector 的方法?我的意思是,投影法 vector 是否总是沿着平面的最陡坡给出?另外,有人告诉我,这个问题应该被视为二维问题。请评论我并向我发送相关公式以计算纵横角。谢谢。

最佳答案

一些快速谷歌搜索揭示了方位角的定义。

http://www.answers.com/topic/aspect-angle

它是北半球地理北方与南半球地理南方之间的夹角。所以基本上它是衡量斜坡朝向最近的杆子的程度。

如果你的世界是平面的而不是球形的,它会简化事情,所以是的 - 一个二维问题。我将做出具有以下含义的假设:

  • 在球形世界中,北极是球体上的一个点。在平面世界中,“极点”是无限远的平面。想一想在您的世界中某个遥远的地方表示“北方”的飞机。在这个任务中只有这个平面的法线是重要的。这个平面的单位法线是N(nz,ny,nz)。
  • Up 是指向U(ux,uy,yz) 的 vector 。这是地平面的单位法 vector 。

平面 V(a,b,c) 的单位法 vector 现在可以像往常一样投影到地平面上的 vector P 上: P = V - (VU) U

现在很容易测量平面的方位角 - 它是“极”平面 N 和投影平面法线 P 之间的角度,由 acos(PN)。

因为北方是正 Y 轴,所以我们有 N = (0, 1, 0)。然后我猜你得到的是 U = (0, 0, 1),正 Z。这将进一步简化事情 - 要在地平面上投影,我们只需去除 Z 部分。那么纵横角就是 (a,b) 和 (0,1) 之间的角度。

aspectAngle = acos(b / sqrt(a*a + b*b))

请注意,与地平面平行的平面没有明确定义的方位角,因为没有用于测量方位角的斜率。

关于c++ - 如何计算方位角,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4906033/

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