0

我在研究如何解决问题时遇到了问题。

我的问题涉及获取对象角度的 3D 表示,然后在它自己的轴上对该对象应用旋转。

例如,一架飞机:

  • 标题 45(东北)
  • 音高 45(鼻子向上)
  • 45 号银行(向左倾斜)

穿过它自己的偏航轴旋转-90度应该大致是:

  • 航向 ~-9.8(北乘北西北)
  • 俯仰 -30(机头向下)
  • Bank 54.5(向左倾斜)

(纯粹根据猜测计算,使用另一个程序使飞机成为自己的孩子并旋转 90 度,然后尝试匹配方向......)

谁能解释这种旋转是如何计算的?甚至指出我学习如何正确的道路?

我已经尝试将基本旋转矩阵应用于角度(用于围绕原点旋转点),但它只相对于基本 x/y/z 轴旋转,而不是相对于飞机的旋转(所以上面的结果会是 (-45,45,45)

出于数学目的,旋转不涉及点坐标,仅涉及 3 个表示角度。

我宁愿不使用任何外部库。

虽然无关紧要,但这将适用于 C# 应用程序。

非常感谢大家的帮助和洞察力!

4

1 回答 1

1

旋转矩阵是一个好的开始,但您还需要一个平移矩阵来获得正确的原点。

如果您想手动完成,您将需要带有旋转矩阵的线性代数。它需要一些数学技能。

基本上这(如下)状态:将对象移动到 x/y/z/ 的原点,应用旋转矩阵并将其放回原始位置。

我必须警告你,用手很难做到。

http://en.wikipedia.org/wiki/Translation_%28geometry%29

http://en.wikipedia.org/wiki/Rotation_matrix

我的一个熟人曾经说过:

r'j(t) = r'0(t) + Ω(t) x [rj(t) - r0(t)]

http://en.wikipedia.org/wiki/Euler%27s_rotation_theorem

于 2013-11-13T09:34:10.553 回答