update_geometry
函数用于更新可视化器中选中的顶点的属性。
语法:
update_geometry(geometry: open3d.geometry.Geometry,
vertex_indices: List[int],
vertex_colors: Optional[np.ndarray] = None,
vertex_normals: Optional[np.ndarray] = None,
clear_vertex_selection: bool = False)
参数:
geometry
:open3d.geometry.Geometry类型的对象,表示待更新的几何体。vertex_indices
:List[int]类型的列表,表示需更新属性的顶点序号。vertex_colors
:可选参数,np.ndarray类型的数组,表示待更新的顶点颜色。若为None,则不更新颜色属性。vertex_normals
:可选参数,np.ndarray类型的数组,表示待更新的顶点法向量。若为None,则不更新法向量属性。clear_vertex_selection
:bool类型的标志位,表示是否同时清除顶点的选中状态。返回值:
示例:
import open3d as o3d
import numpy as np
# 创建一个球体
mesh_sphere = o3d.geometry.TriangleMesh.create_sphere(radius=1.0)
mesh_sphere.compute_vertex_normals()
# 创建可视化对象
vis = o3d.visualization.VisualizerWithVertexSelection()
vis.create_window(window_name='Open3D', width=800, height=600)
vis.add_geometry(mesh_sphere)
# 选中第0个点,并修改颜色和法向量
updates = {}
updates['vertex_indices'] = [0]
updates['vertex_colors'] = np.array([[0.0, 0.0, 1.0]])
updates['vertex_normals'] = np.array([[0.0, 0.0, 1.0]])
vis.update_geometry(mesh_sphere, **updates)
# 清除选中状态
vis.update_geometry(mesh_sphere, vertex_indices=[0], clear_vertex_selection=True)
# 关闭窗口
vis.destroy_window()
注意:若需要整体更新几何体的属性(而非选中的顶点),则应使用可视化器对象的update_geometry
方法。