【发布时间】:2014-08-03 18:39:10
【问题描述】:
我在 3D 空间中有一组点(其中 100 万,未来可能更多,例如 10 或 1 亿)形成一个球体(它们填充球体 - 它们不只是在表面上)和我想构建连接每个球体与其第一个邻居的四面体......寻找四面体,到目前为止,我发现的只是:
- 网格划分算法,但据我所知,它们填充空白,而我的点是固定的。
- 表面观察的算法,这无关紧要
- 用于查看 3D 图像的算法(主要用于医疗领域):更接近但效果不佳。
我该怎么做?
2014-08-09 首先感谢大家的建议!我曾经 - 现在仍然 - 在假期里,只是路过看看是否有人回答......我并不失望!!!! :-) 我想我会先尝试 CGAL,然后再看看。我对 O(n2) 中的同一组点进行了其他数据计算,我预计这些点将持续大约 1 周,所以几个小时不会那么糟糕。分分钟梦想成真!
【问题讨论】:
-
四面体化……我的舌头在黑暗的角落里爬了回来,开始哭泣……
-
lcni.uoregon.edu/~dow/Projects/Brain_casting/… 可能是一个好的开始。根据您的需要,一个 3d 凸包可能就足够了
-
您可能想先看看类似的 2D 问题(用三角形填充):Delaunay Triangulation。
-
这是个好问题。但是,它不适合此站点。试试programmers.stackexchange.com 或softwarerecs.stackexchange.com
-
@Jaa-c 这不是用来寻找水平集的表面吗?为此,您需要一个四面体空间。 OP 正试图首先进行这样的四面体化。
标签: c++ algorithm computational-geometry mesh tetrahedra