从2d点创建2d三角形

时间:2010-08-24 10:05:43

标签: algorithm graphics

我必须使用条件从2d点列表中制作2d三角形:任何边的长度都不能超过预定义的常量。

这样的事情: alt text

你知道任何可以做到这一点的算法吗?或者任何建议?

谢谢!

3 个答案:

答案 0 :(得分:7)

尝试Delaunay triangulation,然后移除任何太长的边缘。

从上面的文章中,您会看到指向CGAL's 2D triangulation page的链接。

答案 1 :(得分:2)

首先,生成所有可能的边(即连接比常数更近的一对顶点)。然后,当它们中的两个相交时,移除其中一个。重复此步骤,直到没有交叉点。

这个解决方案非常原始,可能会更快地完成。

答案 2 :(得分:1)

我喜欢svick的回答 -

实施时我会做以下

  1. 计算每对点之间的线
  2. 按长度对列表进行排序
  3. 删除超过阈值的所有行
  4. 继续列表(最长到最短)如果它越过另一行然后将其删除。