get_rotation_matrix_from_xyz
是 Open3D 中的一个函数,用于创建绕 X 轴、Y 轴和 Z 轴旋转的旋转矩阵。
get_rotation_matrix_from_xyz(xyz: List[float]) -> numpy.ndarray
xyz
: List[float] - 旋转角度,分别对应绕 X 轴、Y轴和 Z轴的旋转角度。单位为弧度。ret
: numpy.ndarray - 3x3 的旋转矩阵。import open3d as o3d
import numpy as np
# 创建绕 X 轴, Y 轴和 Z 轴旋转的旋转矩阵
rotation_matrix = o3d.geometry.get_rotation_matrix_from_xyz([np.pi/2, np.pi/4, np.pi/6])
print(rotation_matrix)
输出:
[[ 0.43301269 -0.8365163 0.33333333]
[ 0.66666667 0.33333333 0.66666667]
[-0.60459911 -0.43643173 0.66666667]]
TypeError
: 如果传入的参数类型不正确,函数将会抛出 TypeError
异常。传入的旋转角度 xyz
的单位为弧度。
特别地,绕 X 轴进行 $\theta$ 的旋转矩阵为:
[[1, 0, 0],
[0, cos(theta), -sin(theta)],
[0, sin(theta), cos(theta)]]
绕 Y 轴进行 $\theta$ 的旋转矩阵为:
[[ cos(theta), 0, sin(theta)],
[ 0, 1, 0],
[-sin(theta), 0, cos(theta)]]
绕 Z 轴进行 $\theta$ 的旋转矩阵为:
[[cos(theta), -sin(theta), 0],
[sin(theta), cos(theta), 0],
[ 0, 0, 1]]