优化Delaunay三角剖分算法

时间:2017-04-06 08:12:47

标签: c++ algorithm delaunay

亲爱的社区成员,

我最近一直在使用cpp中的Delaunay三角测量实现。虽然我的算法有效..它非常慢(100个对象的计算时间约为16秒)。

算法基于蛮力方法。给出一组有限的点:

  • 我正在遍历每个点三次,检查,如果我可以 从这些点创建一个三角形;
  • 从这三点开始,我创造了一个圆圈,通过这些点;
  • 我第四次遍历整个点,检查创建的圆圈是否包含与这三个点不同的点 如上所述。
  • 如果圆圈内没有其他点,我假设从这三个点创建的三角形有效。

就像我提到的,算法是在这里描述的Delaunay三角剖分的直接实现:https://en.wikipedia.org/wiki/Delaunay_triangulation。它的工作“完美”,但速度很慢。

关于逻辑的任何想法/建议可以加快速度(如果可能的话,不完全改变逻辑)?

1 个答案:

答案 0 :(得分:-1)

谢谢大家的快速反馈。

我做了一些额外的研究,遗憾的是,降低时间复杂度的最佳方法似乎是完全重写现有算法。

对于可能遇到类似问题的其他人,此处描述了示例方法:https://people.eecs.berkeley.edu/~jrs/274/proj.html