如何从方向向量计算偏航、俯仰和翻滚角?

3
我正在处理一些3D图形并遇到了问题。我有在世界中移动的模型。这些模型有一个基类,其中包含它们的方向,以三个正交单位向量的形式,即DirectionUpRight。它们分别指向模型前面的方向、上方和右侧方向。
模型的AI通过改变模型的Direction向量和所有其他方向向量来追踪目标,以模拟模型指向目标的情况。
我无法跟踪AI更改方向向量的角度,因为AI文件已经预编译,我无法更改它们。此外,AI使用模型的位置坐标和目标的位置坐标来更改向量。
我的问题是如何从方向向量中获取yawpitchroll,以创建旋转矩阵以将整个模型旋转到所需的方向?
感谢任何帮助。
[编辑] 感谢给出的答案,我找到了这个:
               X   Y   Z   W
             -                -
       Right | Rx  Ry  Rz  Rw |
          Up | Ux  Uy  Uz  Uw |
    -Forward |-Fx -Fy -Fz -Fw |
 Translation | Tx  Ty  Tz  Tw |
             -                -

这是设置矩阵以使用方向向量获取世界矩阵的方法(不包括缩放:如果需要缩放,只需创建一个缩放矩阵并将其乘以此矩阵即可)。

[已解决]


如果您对与问题标题不匹配的答案感到满意,请考虑更新问题标题。谢谢。 - user234736
1个回答

3
你不需要偏航、俯仰和翻滚。三个正交单位向量方向、上和右给出了旋转矩阵的行。就是这么简单。
请参见此视频中41:58处:Android设备上的传感器融合:运动处理的革命
顺便说一下,你可能会在38:25时遇到偏航、俯仰和翻滚的麻烦。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接