该方法用于获取从X、Y、Z轴旋转角度值组成的向量,构建出一个旋转矩阵,该矩阵可以逆时针方向将3维空间中的点绕X、Y、Z轴旋转指定角度。
get_rotation_matrix_from_xyz(xyz: List[float]) -> numpy.ndarray
xyz
: 旋转角度向量,类型为List[float]
,长度为3,分别为绕X、Y、Z轴的旋转角度(单位:弧度)。返回值为一个3*3的numpy.ndarray
类型矩阵,表示绕X、Y、Z轴旋转角度后的旋转矩阵。
import numpy as np
from open3d.geometry import OrientedBoundingBox
# 创建一个朝向X、Y、Z轴的有向包围盒
obb = OrientedBoundingBox(np.array([0,0,0]), np.eye(3))
# 设置绕X、Y、Z轴的旋转角度分别为90°、180°、270°
xyz = [np.pi/2, np.pi, np.pi*3/2]
# 获取旋转矩阵
rot_matrix = obb.get_rotation_matrix_from_xyz(xyz)
print(rot_matrix)
输出结果:
[[-1.0000000e+00 1.2246468e-16 -1.2246468e-16]
[-1.2246468e-16 -1.0000000e+00 1.2246468e-16]
[ 1.2246468e-16 1.2246468e-16 -1.0000000e+00]]
xyz
不是长度为3的数字列表时,会抛出TypeError
异常。