SciPy 中 Delauny 三角剖分后如何获取面和顶点?

问题描述 投票:0回答:1

我已经在这里阅读了SciPy文档(https://docs.scipy.org/doc/scipy/reference/ generated/scipy.spatial.Delaunay.html)多次,但我似乎找不到回答这个问题。我只看到输出的单纯形。

我有这个函数,它接受 3-D numpy 数组

from scipy.spatial import Delaunay


def get_vertices(points):
    # Convert to mesh
    tri = Delaunay(points)
    faces = points[tri.simplices]

如何获取顶点?我需要顶点和面来创建网格。

python numpy scipy 3d delaunay
1个回答
0
投票

由于

scipy.spatial.Delaunay
是 N 维的,因此术语“单纯形”是一个通用术语,指的是 2D 中连接顶点的三角形和 3D 中连接顶点的四面体。

要从 Delaunay 三角剖分创建网格,您必须过滤掉所有内部顶点并找到不与其他单纯形共享的单纯形(四面体)的面。我正在尝试使用

scipy.spatial.Delaunay.neighbors()
找出一种方法。如果我找到解决方案,我会更新这个答案。

对于其他可能同时找到此答案的人,scikit-image.measure.marching_cubes() 是从 3D 体素数组创建表面网格(顶点和面)的选项。

© www.soinside.com 2019 - 2024. All rights reserved.