draw_geometries_with_editing
是 Open3D 中 visualization
模块的一个函数,主要用于在可视化窗口中展示几何体并提供几何体编辑功能。使用该函数可以在可视化窗口中移动、旋转、缩放和删除几何体,并且还支持通过鼠标点击添加新的几何体。
def draw_geometries_with_editing(geometry_list,
window_name='Open3D',
width=1920,
height=1080,
left=50,
top=50,
point_size=1.0,
mesh_show_wireframe=False,
mesh_show_back_face=True,
lookat=None,
up=None,
front=None,
zoom=None):
'''
将几何体绘制到 Open3D 可视化窗口,并启动编辑模式。
Parameters
----------
geometry_list : list
包含要绘制的所有几何体的列表。
window_name : str, optional
可视化窗口的名称,默认为 "Open3D"。
width : int, optional
可视化窗口的宽度,默认为 1920。
height : int, optional
可视化窗口的高度,默认为 1080。
left : int, optional
可视化窗口的左边界距离屏幕左侧的像素数。默认为 50。
top : int, optional
可视化窗口的上边界距离屏幕顶部的像素数。默认为 50。
point_size : float, optional
点几何体的大小,仅用于展示点几何体。默认为 1.0。
mesh_show_wireframe : bool, optional
是否在网格几何体上显示线框。默认为 False。
mesh_show_back_face : bool, optional
是否显示网格几何体的背面。默认为 True。
lookat : array, optional
视点位置,代表可视化窗口的视线所指向的位置。如果未提供,会自动计算。
up : array, optional
视线向上的方向。如果未提供,会自动计算。
front : array, optional
视线向前的方向。如果未提供,会自动计算。
zoom : float, optional
视点的缩放倍数。默认为 None,表示自动计算。
Returns
-------
bool
窗口是否成功打开并进行了编辑模式。
'''
import open3d as o3d
import numpy as np
# 创建一个点云并添加到几何体列表中
pcd = o3d.geometry.PointCloud()
pcd.points = o3d.utility.Vector3dVector(np.random.randn(500, 3))
geometry_list = [pcd]
# 创建一个三角网格并添加到几何体列表中
mesh = o3d.geometry.TriangleMesh.create_sphere(radius=1.0)
mesh.compute_vertex_normals()
geometry_list.append(mesh)
# 调用 draw_geometries_with_editing 进行编辑和展示
o3d.visualization.draw_geometries_with_editing(geometry_list)
以上代码会创建一个包含点云和球体的几何体列表,并通过 draw_geometries_with_editing
函数对其进行展示。在展示窗口中,可以通过鼠标左键进行移动,使用鼠标右键进行旋转,同时也可以通过滚轮进行缩放。除此之外,还可以通过鼠标点击添加新的几何体,或者使用 Delete 键删除选中的几何体。