方法get_rotation_matrix_from_xyz
用于生成绕X、Y和Z轴旋转的旋转矩阵。
get_rotation_matrix_from_xyz(rotations: Sequence[float]) -> np.ndarray
rotations
:一个长度为3的序列(xyz),表示绕X、Y和Z轴旋转的角度,单位为弧度。返回一个3x3的旋转矩阵,表示绕X、Y和Z轴的旋转操作。
import open3d as o3d
import numpy as np
rotations = [np.pi/2, 0, 0] # 绕X轴旋转90度
rotation_matrix = o3d.geometry.TriangleMesh.get_rotation_matrix_from_xyz(rotations)
旋转角度以弧度为单位。
旋转顺序为Z、Y、X,即先绕Z轴旋转,再绕Y轴旋转,最后绕X轴旋转。
返回的旋转矩阵满足矩阵乘法结合律,即先乘Z轴旋转矩阵、再乘Y轴旋转矩阵、最后乘X轴旋转矩阵,与先绕X轴旋转、再绕Y轴旋转、最后绕Z轴旋转的操作等价。
所有旋转矩阵的行向量都是正交归一的。
该函数实际上是调用了Numpy的三维旋转函数numpy_euler_xyz
,但使用Open3D的旋转函数具有更好的兼容性和易用性。