在 python 中网格化 3D 表面数据

计算科学 Python 网格生成
2021-12-14 02:47:49

我有一个 3 维点的数据集,我想使用 python 为其构建一个网格。我见过的所有软件都需要您提供边缘。python中是否有一个程序将一组3D点作为输入并输出一个网格?如果可能的话,我希望网格是均匀的。

3个回答

如果无限制的三角测量可以,您可以使用使用Qhull的scipy.spatial.Delaunay 来完成。

CGAL ( http://www.cgal.org ) 有许多用于在 3D 中对点进行三角剖分的模块(来自点的表面网格、对 3D 中的点进行三角剖分等)。CGAL 模块子集的 Python 包装器可用 ( https://code.google.com/p/cgal-bindings ),包括 3D 三角测量。我已经使用 CGAL C++ 接口在 3D 中对点进行三角测量,但我没有使用 Python 接口的经验。

您可以尝试具有 Python API 的VTK 。我会首先尝试 ParaView 并将您的观点纳入其中,然后尝试一些过滤器(例如 Delaunay)。如果过滤器在ParaView中使用您的数据(基于 VTK),那么您可以使用 VTK 来完成这项工作。您将获得多大的成功将取决于这些点的外观以及它们与过滤器的匹配程度。

如果 VTK 看起来可行,请查看有关 VTK 的 Kitware 教程,因为我知道有一个使用 Python/VTK 进行演示。