get_rotation_matrix_from_xzy
是Open3D库的一部分,一个用于创建旋转矩阵的函数,根据给定的三个轴(x,y,z),将其转换为对应的旋转矩阵。
get_rotation_matrix_from_xzy(xyz: List[float]) -> numpy.ndarray[float64[3,3]]
xyz
:一个长度为3的列表,代表需要旋转的三个轴的角度(单位:弧度)。顺序为x->y->z。函数返回一个3x3的浮点数(float64)矩阵,代表通过给定轴旋转的变换矩阵。
import open3d as o3d
import numpy as np
# 生成一个含有点的PCD
pcd = o3d.geometry.PointCloud()
pcd.points = o3d.utility.Vector3dVector(np.random.uniform(-1, 1, (100, 3)))
# 定义x、y、z轴需要旋转的角度(弧度值)
x_angle = np.pi/2
y_angle = np.pi/4
z_angle = np.pi/3
# 得到变换矩阵
rot_matrix = o3d.geometry.Octree.get_rotation_matrix_from_xzy([x_angle, y_angle, z_angle])
# 应用变换矩阵
transform = np.eye(4)
transform[:3, :3] = rot_matrix
pcd.transform(transform)
# 可视化旋转后的PCD
o3d.visualization.draw_geometries([pcd])