我从一个精确的数值解中得到了一些点,这些点构成了一个光滑的 3D 物体的表面。这些点已经满足平滑标准并且不包含噪声(除了双精度舍入误差)。我现在需要为物理模拟软件从这些点生成一个三角形网格。
这个问题的两个方面与已经在 SO 上提出的问题不同:
- 三角测量应该完全使用规定的输入点并且只使用规定的点,没有插值,没有添加或省略任何点,“慢跑”等。似乎这种类型的问题在“点云”的背景下被问过几次,其中输入点表示表面上的近似位置,但我的坐标是准确的。
- 在 3d 中多次提到了 Delaunay 三角剖分,但也提到了一些注意事项,并且 Delaunay 三角剖分对于 3d 来说不是“最佳”的。
是否有开源库或算法的建议可以生成某种形式的高质量 3d 三角剖分(不需要超严格的最优性保证,但某种形式的质量目标会很好)只保留(和所有)规定的顶点和不要将此视为采样和重建问题?
使用以下一种(或多种)实现:C、OCaml、C++ 或 Python 将不胜感激。我找到了 Qhull:http ://www.qhull.org/ (也用于 SciPy 的 scipy.spatial),但看起来它只生成 Delaunay 三角形并且有一些令人困惑的选项,所以我不确定它可以满足我的第一个约束。