transform
函数能够对 MeshBase
实例进行变换操作。
transform(transformation : numpy.ndarray, copy : bool = True)
transformation
: 4x4
的变换矩阵,类型为 numpy.ndarray
。copy
:可选参数,若为 True
,表示变换后结果会赋值到一个新的 MeshBase
实例,不会修改原实例;若为 False
,则会在原实例上进行修改。import open3d as o3d
import numpy as np
mesh = o3d.geometry.TriangleMesh.create_coordinate_frame(size=1.0)
# 旋转操作
R = np.array([[1, 0, 0, 0], [0, np.cos(np.pi/4), -np.sin(np.pi/4), 0], [0, np.sin(np.pi/4), np.cos(np.pi/4), 0], [0, 0, 0, 1]])
mesh.transform(R)
# 平移操作
T = np.array([[1, 0, 0, 1], [0, 1, 0, 1], [0, 0, 1, 1], [0, 0, 0, 1]])
mesh.transform(T)
# 缩放操作
S = np.array([[1.5, 0, 0, 0], [0, 1.5, 0, 0], [0, 0, 1.5, 0], [0, 0, 0, 1]])
new_mesh = mesh.transform(S, copy=True)
变换后的 MeshBase
实例。
NotImplementedError
:若 MeshBase
派生类未实现该方法。