import numpy as np from scipy.spatial.transform import Rotation as R np.set_printoptions(precision=4, suppress=True) rotation = R.from_euler("zyx", [45, 20, 10], degrees=True) quat_xyzw = rotation.as_quat() matrix = rotation.as_matrix() rotvec = rotation.as_rotvec() print("Euler zyx degrees:") print(rotation.as_euler("zyx", degrees=True)) print("\nQuaternion xyzw:") print(quat_xyzw) print("\nQuaternion wxyz:") print(rotation.as_quat(scalar_first=True)) print("\nRotation matrix rows:") for row in matrix: print(row) print("\nRotation vector radians:") print(rotvec) print("\nRound-trip checks:") print("from_quat :", R.from_quat(quat_xyzw).approx_equal(rotation, atol=1e-12)) print("from_matrix:", R.from_matrix(matrix).approx_equal(rotation, atol=1e-12)) print("from_rotvec:", R.from_rotvec(rotvec).approx_equal(rotation, atol=1e-12))