仅使用精确输入点作为顶点的三角形表面网格生成

时间:2013-01-28 18:52:46

标签: 3d geometry point mesh delaunay

我从精确的数值解决方案中获得了许多点,这些点构成了平滑3D体的表面。这些点已经满足平滑度标准并且不包含噪声(除了双精度舍入误差之外)。我现在需要从物理模拟软件的这些点生成三角形网格。

这个问题的两个方面与SO上已经提出的问题不同:

  • 三角测量应该使用完全规定的输入点和规定的点,无需插值,不添加或省略任何点,“joggling”等。似乎这类问题已被问到在“点云”的上下文中,有几次输入点代表表面上的近似位置,但我的坐标是精确的。
  • 在3d中有很多关于Delaunay三角剖分的提及,但也提到了警告,并且Delaunay三角剖分不被认为是3d的最佳选择。

是否有针对开源库或算法的建议可以生成某种形式的高质量三维三角测量(超严格的最优性保证不是必需的,但一些形式的质量目标会很好)仅保留(和所有)规定的顶点,将其视为采样和重建问题?

在一个(或多个):C,OCaml,C ++或Python中的实现将不胜感激。我找到了Qhull:http://www.qhull.org/(也用于SciPy的scipy.spatial),但看起来它只有Delaunay三角形生成并且有一些有点令人困惑的选项,所以我不确定它能满足我的第一个约束

1 个答案:

答案 0 :(得分:0)

点数大小的大小是多少?它们处于凸起位置,还是大部分位于凸起位置?你想重建什么样的表面?

3D alpha shapesCGAL组件看起来像是从您的点重建网格的好工具。它在GPLv3+下获得许可。但它确实使用3D Delaunay三角测量。我想知道你在谈论什么警告。这取决于您拥有的点云类型。