Después de algunas investigaciones, por ahora, entiendo scipy
tiene la mano derecha del eje del sistema de coordenadas, y el zurdo de rotación.
Por ejemplo
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]
Pero no puedo averiguar la diferencia entre extrinsic
y intrinsic
la rotación.
Para mi entendimiento.
extrinsic
debe utilizar un eje fijo, y intrinsic
debe utilizar giratoria de eje.
Así que, si lo entiendo correctamente.
Aquí "XYZ" significa intrinsic rotation
la podemos encontrar en la doc oficial
# 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()
Estoy mal esta?