Open3D 的geometry有许多变换方法。在本教程中,我们将展示如何使用平移、旋转、缩放和变换。
1. 平移
open3d.geometry.TriangleMesh create_coordinate_frame(size=1.0, origin=array([0.0, 0.0, 0.0])) |
函数功能: 用于创建坐标系网格的函数。坐标系将以原点为中心。x、y、z 轴将分别呈现为红色、绿色和蓝色箭头。 |
参数: size (float, optional, default=1.0):坐标系的大小 origin (numpy.ndarray[numpy.float64[3, 1]], optional, default=array([0., 0., 0.])):坐标系的原点 |
返回: open3d.geometry.TriangleMesh |
2. 旋转
Open3D 的geometry也可以使用 rotate 方法进行旋转。它将旋转矩阵 R 作为第一个参数。由于 3D 中的旋转可以通过多种方式进行参数化,Open3D 提供了方便的函数来从不同的参数化转换为旋转矩阵:
1.使用 get_rotation_matrix_from_xyz 从欧拉角转换(其中 xyz 也可以是 yzx、zxy、xzy、zyx 和 yxz 的形式)
2. 使用 get_rotation_matrix_from_axis_angle 从轴角表示转换
3. 使用 get_rotation_matrix_from_quaternion 从四元数转换
open3d.geometry get_rotation_matrix_from_xyz(rotation: numpy.ndarray[numpy.float64[3, 1]]) → numpy.ndarray[numpy.float64[3, 3]] |
其中 xyz 也可以是 yzx、zxy、xzy、zyx 和 yxz 的形式 |
open3d.geometry get_rotation_matrix_from_axis_angle(rotation: numpy.ndarray[numpy.float64[3,1]])→ numpy.ndarray[numpy.float64[3, 3]] |
open3d.geometry get_rotation_matrix_from_quaternion(rotation: numpy.ndarray[numpy.float64[4,1]]) → numpy.ndarray[numpy.float64[3, 3]] |
3. 缩放
Open3D geometry的顶点和点也可以使用比例缩放,
open3d.geometry.TriangleMesh scale(self, scale, center) |
函数功能: 对几何坐标应用缩放 |
参数: scale (float):与几何的点/顶点相乘的比例参数 center (numpy.ndarray[numpy.float64[3, 1]]):用于转换的比例中心 |
返回: open3d.geometry.Geometry3D |