【发布时间】:2014-02-21 02:31:34
【问题描述】:
我在 CGAL 中计算 k 阶 Voronoi 图和 3d voronoi 图时遇到问题。
-
首先,我想从给定的一组点(2d/3d)计算一个 k 阶 Voronoi 图(k 是最近邻的数量)。
据我所知,CGAL demo ipelet文件夹中有一个头文件“k_delaunay.h”(代码here)。它可以计算一个k阶正则三角剖分。而且我相信我可以将常规三角剖分转换为 Delaunay 三角剖分。
但是,从代码中我们可以看出复杂度是非常高的。我已经测试了 300k 2d 点,计算 k 阶 Voronoi 图的实际运行时间是不可接受的。所以我想知道在CGAL中有没有其他k阶Voronoi图的实现(我的其余代码都是用CGAL编写的,所以我真的很想使用现有的数据结构)?
另外,由于 CGAL 的 voronoi 图适配器只支持 2D,有没有什么有效的方法可以将 3D delaunay 三角剖分转换为 3D voronoi 图?
谢谢!
【问题讨论】:
-
请注意,此文件中的实现是幼稚的,根本没有效率。仅为 Ipe 插件提供。
标签: c++ algorithm cgal voronoi