【问题标题】:How to construct Voronoi diagram on the sphere with CGAL easily?如何用CGAL轻松在球体上构建Voronoi图?
【发布时间】:2014-04-01 01:21:24
【问题描述】:

首先,我是 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?

提前致谢!

【问题讨论】:

  • 您好,您使用 CGAL 库在球体上构建 Voronoi 图成功了吗?

标签: c++ geometry cgal delaunay voronoi


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    您可以简单地使用 libdts2(用于稳健的球形 Delaunay 三角剖分的 CGAL 适配器;在 https://stackoverflow.com/a/45240506/4994003 中描述)

    由于它基于增量构建,因此提供了点定位。 此外,它的速度相当快,而且不会出现数值精度问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-20
      • 2021-01-21
      • 2012-10-30
      相关资源
      最近更新 更多