我在3D空间中有一组点(其中100万个,可能更多,如10或1亿个),形成一个球体(它们填充球体 - 它们不只是在表面上)我想建立将每个球体连接到其第一个邻居的四面体...寻找四面体化,到目前为止,我发现的只有:
我该怎么做?
2014-08-09首先,感谢大家的建议!我是 - 现在还是 - 在假期,只是路过来检查是否有人回答了......我并没有失望!!!! :-) 我想我会首先尝试CGAL,并会从那里看到。我在O(n2)的同一组点上进行了其他数据计算,我预计它将持续大约1周,所以几个小时就不会那么糟糕。分钟将是梦想成真!
答案 0 :(得分:1)
您似乎在寻找3空间的Delaunay triangulation算法。
我希望你不要在等待一段时间,因为一个1亿点的Delaunay三角测量需要相当长的时间。
qhull有一个你可能会尝试的n维Delaunay实现。 CGAL也是如此。两个包都将在O(n log(n))渐近时间内计算Delaunay三角剖分,并且CGAL可以通过适当选择几何核来以数字稳健的方式进行计算。 (也就是说,它可以自动切换到精确算术,用于不精确算术产生不确定结果的那些计算。)
我不建议尝试自己实现快速Delaunay三角测量,即使是在二维方面。当您需要评估算术结果的谓词时,可能会发生可怕的事情。
答案 1 :(得分:0)
我使用tetgen作为我的一个项目进行四面体化。它工作得很好,也很快