我正在寻找一种方法来返回由四元数旋转的欧拉角。
我知道从四元数中提取俯仰滚转和偏航是最有问题的,但是如果可以的话,我只需将其值添加到我自己的值中,以获得最终的欧拉角。
我还可以将我的euler角度转换为四元数,然后将两者合并,但之后我将留下一个四元数,我无法将其转换为euler。
我承认在最好的时候我会与四元数斗争,所以任何帮助都会受到欢迎。
为了清楚起见,我只需要返回一个欧拉角,如果需要,可以使用四元数进行所有其他计算。
我正在使用Bullet Physics,Direct X,C ++
感谢。
答案 0 :(得分:1)
您无法直接将欧拉角与欧拉角或欧拉角与四元数相结合。
您应该将旋转转换为允许转换合成的表示。它是旋转矩阵或四元数。
旋转组合后转换回欧拉角。
P.S。欧拉角根本不是旋转的有用表示。它只能用于手动输入旋转。
答案 1 :(得分:0)
可以来回转换,但你需要尊重你应用不同欧拉角的顺序,否则你会得到一些令人讨厌的结果。
我没有自己尝试,因为所说的minorlogic最好坚持使用旋转矩阵/四元数。
这是一个很好的链接
https://en.wikipedia.org/wiki/Conversion_between_quaternions_and_Euler_angles
其中q0,q1,q2,q3代表w,x,y,z 在这个网站上,他们认为
飞机在滑行到跑道时首先转向偏航,然后在起飞时投球,最后在空中滚动。