adjacency_list
指的是三角网格中每个顶点与与其相邻的顶点。Open3D通过提供TriangleMesh
类的compute_adjacency_list()
方法来计算三角网格的邻接列表,并返回一个List[List[int]]
格式的数据结构,列表的每个元素代表一个顶点的邻居。
from open3d import geometry
# 创建TriangleMesh对象
triangle_mesh = geometry.TriangleMesh()
# 构建对象...
# 计算邻接列表
adjacency_list = triangle_mesh.compute_adjacency_list()
该方法使用较低级别的compute_adjacency_list_from_triangle_list()
方法内部实现,主要执行以下步骤:
最终的邻接列表用于许多操作,例如计算曲率,计算法线等。
注意:TriangleMesh
类的compute_adjacency_list()
方法只适用于三角形拓扑结构,不适用于其他类型的网格。
无参数。
返回邻接列表,类型为List[List[int]]
。其中,List[int]
代表第i个顶点的邻居区域的顶点编号列表。
from open3d import geometry
# 创建TriangleMesh对象
triangle_mesh = geometry.TriangleMesh()
# 加载PLY文件
triangle_mesh = geometry.TriangleMesh.from_legacy_triangle_mesh(geometry.read_triangle_mesh("mesh.ply"))
# 计算邻接列表
adjacency_list = triangle_mesh.compute_adjacency_list()
# 输出邻接列表
print(adjacency_list)
该代码将显示如下输出,这是第0个顶点的邻接列表:
[1, 3, 2, 4]
无异常。