我无法理解"scipy"lib的外在和内在旋转顺序



经过一些研究,目前我知道scipy具有右旋轴坐标系和左旋旋转。

例如

from scipy.spatial.transform import Rotation as R
np.array([0,1,0]) @ R.from_euler("XYZ", [0,0,30], degrees=True).as_matrix()  # should be [0.5,sqrt(3)/2,0]

但我不知道extrinsicintrinsic旋转之间的区别。

为了我的理解。

extrinsic应使用固定轴,intrinsic应使用可旋转轴。

所以,如果我理解正确的话。

这里";XYZ";意思是intrinsic rotation,你可以在官方文档中找到

# should be [-0.5,sqrt(3)/2,-1]
# But it is [0.5,sqrt(3)/2,-1], seems like the `extrinsic rotation`
np.array([0,1,1]) @ R.from_euler("YZX", [180,30,0], degrees=True).as_matrix()
# should be [0.5,sqrt(3)/2,-1]
# But it is [-0.5,sqrt(3)/2,-1], seems like the `intrinsic rotation`
np.array([0,1,1]) @ R.from_euler("yzx", [180,30,0], degrees=True).as_matrix()

我误解了吗?

对不起,这是个愚蠢的问题。

我的错。

它应该在左边增加旋转。

R.from_euler("YZX", [180,30,0], degrees=True).as_matrix() @ np.array([0,1,1])

最新更新