是否有 Python 库可以在 3D 中进行约束三角剖分?
Is there a Python library to do constrained triangulations in 3D?
我有一个函数,其范围是 R3 中的非凸单连通区域。当我对函数进行采样时,我知道结果点是否在区域的表面上。我想对那些受表面约束的样本进行三角剖分,即生成的四面体不应该
"hide" 面点。船体当然不会是凸的。
我四处寻找图书馆。到目前为止,我找到了 Triangle,但它只适用于 R2。我还找到了 TetGen,它在 R3 中工作,但它需要提供
表面三角测量(我没有)。另外,据我所知,这些 C/C++ 库没有 Python 绑定。
有什么建议吗?谢谢!
你可以看看CGAL it has python-bindings。
旁注:如果您需要表面三角测量(这似乎是一个 2D 问题),您可以将每张脸投影到 2D,三角测量,然后返回到您的 3D 脸。
由于评论而编辑:CGAL 确实 "only" 3D triangulation. 3D constrained triangulation requires Steiner points. Since not every input can be triangulated in 3D (Schönhardt polyhedron 作为经典的反例)。
也许你可以看看 MeshPy 看起来它有你要找的东西:"MeshPy provides Python interfaces to three well-regarded mesh generators, Triangle by J. Shewchuk, TetGen by Hang Si, and gmsh by Christophe Geuzaine and Jean-Francois Remacle."
我有一个函数,其范围是 R3 中的非凸单连通区域。当我对函数进行采样时,我知道结果点是否在区域的表面上。我想对那些受表面约束的样本进行三角剖分,即生成的四面体不应该 "hide" 面点。船体当然不会是凸的。
我四处寻找图书馆。到目前为止,我找到了 Triangle,但它只适用于 R2。我还找到了 TetGen,它在 R3 中工作,但它需要提供 表面三角测量(我没有)。另外,据我所知,这些 C/C++ 库没有 Python 绑定。
有什么建议吗?谢谢!
你可以看看CGAL it has python-bindings。
旁注:如果您需要表面三角测量(这似乎是一个 2D 问题),您可以将每张脸投影到 2D,三角测量,然后返回到您的 3D 脸。
由于评论而编辑:CGAL 确实 "only" 3D triangulation. 3D constrained triangulation requires Steiner points. Since not every input can be triangulated in 3D (Schönhardt polyhedron 作为经典的反例)。
也许你可以看看 MeshPy 看起来它有你要找的东西:"MeshPy provides Python interfaces to three well-regarded mesh generators, Triangle by J. Shewchuk, TetGen by Hang Si, and gmsh by Christophe Geuzaine and Jean-Francois Remacle."