c++ - 如何轻松地用CGAL在球体上构造Voronoi图?

标签 c++ geometry cgal delaunay voronoi

首先,我是 CGAL 的新手,但经常用 C++ 编程。我想使用 CGAL 来构造球体上点的 Voronoi 图。我自己为我的一项研究实现了一个,但数据结构不是很通用,我想使用像 CGAL 这样更健壮的工业库。从CGAL的文档来看,似乎我们需要使用3D Delaunay三角剖分结合凸包。另外,我找到一篇论文Robust and Efficient Delaunay Triangulations of Points on Or Close to a Sphere,它使用CGAL作为基础,但我找不到它的代码。

所以任何人都可以提供有关如何在 CGAL 中执行此操作的示例? CGAL是否有计划用更高效的算法直接支持球形Delaunay和Voronoi?

提前致谢!

最佳答案

您可以通过首先计算凸包 [1],然后计算小平面法线来计算球体上点的 Voronoi 图。将这些法线中的每一个乘以球体的半径,就得到了 Voronoi 顶点(根据 [2])。

[1] http://doc.cgal.org/latest/Convex_hull_3/index.html

[2] http://www.qhull.org/html/qdelaun.htm

关于c++ - 如何轻松地用CGAL在球体上构造Voronoi图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22088407/

相关文章:

c++ - 使用 CGAL::Constrained_Delaunay_triangulation_2 三角化多边形

c++ - 转换后的指针算术

c++ - ActiveQt Com 应用程序示例 - COM 服务器未在 Windows 注册表中注册 (Qt4.7.4)

c++ - STL 列表删除项

processing - 贝塞尔曲线与圆的交点

c++ - CGAL::Delaunay_triangulation_3 期间无限循环

c++ - 如何处理请求时可能不会终止的线程?

arrays - 找到三角形最大可能面积的最快方法

algorithm - 寻找一组点的旋转中心

computational-geometry - CGAL/minkowski_sum_2 的不适合多边形问题