După unele cercetări, pentru moment, am înțeles scipy
are dreptaci axa sistemului de coordonate, și stângaci rotație.
De exemplu
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]
Dar eu nu pot figura diferite între extrinsic
și intrinsic
rotație.
Pentru înțelegerea mea.
extrinsic
ar trebui să utilizați unei axe fixe, și intrinsic
ar trebui să utilizați rotativ axa.
Deci, dacă am înțeles corect.
Aici "XYZ" intrinsic rotation
, puteți găsi la oficial doc
# 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()
Am înțeles acest lucru?