open3d.geometry.MeshBase类中的get_rotation_matrix_from_axis_angle方法可以根据一个旋转轴和旋转角度,计算出一个旋转矩阵。
def get_rotation_matrix_from_axis_angle(axis: np.ndarray, theta: float) -> np.ndarray
参数说明:
axis
:ndarray,旋转轴的三个分量的数组,长度为3。theta
:float,旋转角度,单位是弧度。返回值:
np.ndarray
,3x3的旋转矩阵。import open3d as o3d
import numpy as np
mesh = o3d.geometry.TriangleMesh.create_sphere(radius=1.0)
axis = np.array([1.0, 0.0, 0.0])
theta = np.pi/4
R = mesh.get_rotation_matrix_from_axis_angle(axis, theta)
mesh.rotate(R)
o3d.visualization.draw_geometries([mesh])
运行以上代码,可以看到一个球体的上半部分被旋转了45度。