Dopo alcune ricerche, per ora, capisco scipy
ha la mano destra assi del sistema di coordinate, e con la mano sinistra rotazione.
Per esempio
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]
Ma non riesco a capire la differenza tra extrinsic
e intrinsic
la rotazione.
Per la mia comprensione.
extrinsic
dovrebbe utilizzare di un asse fisso, e intrinsic
dovrebbe utilizzare rotabile asse.
Quindi, se ho capito correttamente.
Qui "XYZ" significa intrinsic rotation
si può trovare presso il doc ufficiale
# 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 mi fraintendere questo?