2 个不稳定版本
0.2.0 | 2024 年 2 月 2 日 |
---|---|
0.1.0 | 2024 年 1 月 10 日 |
893 在 算法 中
110KB
2.5K SLoC
Rust 中的 Delaunay 三角化和四面体化
此软件是 Delaunay 2D 和 3D 算法的实现,用于编程练习。它并未完全优化,但至少应该能正确工作。
Delaunay 2D
一组 2D 点沿着 Hilbert 曲线排序。
插入一个第一个(非平面)三角形,然后逐个插入下一个点。
对于每个点,在 Delaunay 图中进行一次遍历,直到找到包含该点的三角形。点被插入到三角形内,然后进行一系列边翻转,直到图完全 Delaunay。
Delaunay 3D
一组 3D 点沿着 Hilbert 曲线排序。
插入一个第一个(非平面)四面体,然后逐个插入下一个点。
对于每个点,在 Delaunay 图中进行一次遍历,直到找到包含该点的三角形。然后,删除包含该点的球面内的每个相邻四面体。然后插入一个新的四面体集来替换图中的洞(Bowyer-Watson 算法)。
来源
Olivier Devilliers, Delauany 三角化,理论与实践, EuroCG12 链接
David F. Watson, 使用 Delaunay 网格计算 n 维 Delaunay 网格并应用于 Voronoi 多面体, 计算机杂志,第 24 卷,第 2 期,1981 年,第 167-172 页
Adrian Bowyer, 计算 Dirichlet 网格,计算机杂志, 第 24 卷,第 2 期,1981 年,第 162-166 页
SI, Hang, TetGen,一个基于 Delaunay 的优质四面体网格生成器, ACM 数学软件事务,2015 年,第 41 卷,第 2 期,第 11 页. (此仓库不是 TetGen 的实现)
Gavrilova, Marina, Ratschek, Helmut, et Rokne, Jon G. 精确计算 Delaunay 和幂三角化, 可靠计算,2000 年,第 6 卷,第 39-60 页. (本仓库未实现)
依赖项
~695KB