如何通过四元数调整欧拉角
How to adjust euler angle by quaternion
我正在寻找一种方法来 return 计算已被四元数旋转的欧拉角。
我知道从四元数中提取俯仰滚转和偏航充其量是有问题的,但如果可以的话,我会简单地将它的值添加到我自己的值以获得最终的欧拉角。
我也可以将我的欧拉角转换为四元数,然后将两者结合起来,但我会留下一个无法转换为欧拉角的四元数。
我承认我在最好的时候都在与四元数作斗争,所以任何帮助都会受到欢迎。
为清楚起见,我只需要return一个欧拉角,如果需要,所有其他计算都可以用四元数完成。
我正在使用 Bullet Physics、Direct X、C++
谢谢。
不能直接将欧拉角与欧拉角或欧拉角与四元数组合。
您应该将旋转转换为允许变换合成的表示。它是旋转矩阵或四元数。
旋转组合后转换回欧拉角。
P.S。欧拉角根本不是旋转的有用表示。它只能用于手动输入旋转。
可以来回转换,但您需要遵守应用不同欧拉角的顺序,否则您会得到一些令人讨厌的结果。
我自己没有尝试过,正如所说,minorlogic 最好坚持旋转 matrix/quaternions。
这是一个不错的 link
https://en.wikipedia.org/wiki/Conversion_between_quaternions_and_Euler_angles
其中 q0,q1,q2,q3 代表 w,x,y,z
在这个网站上,他们假设
其中飞机在滑行到跑道时先偏航,然后在起飞时俯仰,最后在空中翻滚。
我正在寻找一种方法来 return 计算已被四元数旋转的欧拉角。
我知道从四元数中提取俯仰滚转和偏航充其量是有问题的,但如果可以的话,我会简单地将它的值添加到我自己的值以获得最终的欧拉角。
我也可以将我的欧拉角转换为四元数,然后将两者结合起来,但我会留下一个无法转换为欧拉角的四元数。
我承认我在最好的时候都在与四元数作斗争,所以任何帮助都会受到欢迎。
为清楚起见,我只需要return一个欧拉角,如果需要,所有其他计算都可以用四元数完成。
我正在使用 Bullet Physics、Direct X、C++
谢谢。
不能直接将欧拉角与欧拉角或欧拉角与四元数组合。
您应该将旋转转换为允许变换合成的表示。它是旋转矩阵或四元数。
旋转组合后转换回欧拉角。
P.S。欧拉角根本不是旋转的有用表示。它只能用于手动输入旋转。
可以来回转换,但您需要遵守应用不同欧拉角的顺序,否则您会得到一些令人讨厌的结果。
我自己没有尝试过,正如所说,minorlogic 最好坚持旋转 matrix/quaternions。
这是一个不错的 link
https://en.wikipedia.org/wiki/Conversion_between_quaternions_and_Euler_angles
其中 q0,q1,q2,q3 代表 w,x,y,z 在这个网站上,他们假设
其中飞机在滑行到跑道时先偏航,然后在起飞时俯仰,最后在空中翻滚。