如何通过四元数调整euler角度

时间:2017-10-11 19:45:37

标签: directx quaternions euler-angles

我正在寻找一种方法来返回由四元数旋转的欧拉角。

我知道从四元数中提取俯仰滚转和偏航是最有问题的,但是如果可以的话,我只需将其值添加到我自己的值中,以获得最终的欧拉角。

我还可以将我的euler角度转换为四元数,然后将两者合并,但之后我将留下一个四元数,我无法将其转换为euler。

我承认在最好的时候我会与四元数斗争,所以任何帮助都会受到欢迎。

为了清楚起见,我只需要返回一个欧拉角,如果需要,可以使用四元数进行所有其他计算。

我正在使用Bullet Physics,Direct X,C ++

感谢。

2 个答案:

答案 0 :(得分:1)

  1. 您无法直接将欧拉角与欧拉角或欧拉角与四元数相结合。

  2. 您应该将旋转转换为允许转换合成的表示。它是旋转矩阵或四元数。

  3. 旋转组合后转换回欧拉角。

  4. P.S。欧拉角根本不是旋转的有用表示。它只能用于手动输入旋转。

答案 1 :(得分:0)

可以来回转换,但你需要尊重你应用不同欧拉角的顺序,否则你会得到一些令人讨厌的结果。

我没有自己尝试,因为所说的minorlogic最好坚持使用旋转矩阵/四元数。

这是一个很好的链接

https://en.wikipedia.org/wiki/Conversion_between_quaternions_and_Euler_angles

enter image description here

其中q0,q1,q2,q3代表w,x,y,z 在这个网站上,他们认为

飞机在滑行到跑道时首先转向偏航,然后在起飞时投球,最后在空中滚动。