我正在使用 SciPy 在 Python 中根据欧拉角计算旋转四元数,并尝试根据外部源(Wolfram Alpha)进行验证。
这个Scipy代码给了我一个答案:
from scipy.spatial.transform import Rotation as R
rot = R.from_euler('xyz', [30,45,60], degrees=1)
quat = rot.as_quat()
print(quat[3], quat[0], quat[1], quat[2]) # w, x, y, z
(w,x,y,z) = 0.8223, 0.0222, 0.4396, 0.3604
而 Wolfram Alpha 给出了不同的答案
(w,x,y,z) = 0.723, 0.392, 0.201, 0.532
为什么会有差异?这是物体旋转方式的范式差异吗(例如,外部旋转与内部旋转)?