多边形分区与三角测量

时间:2011-07-15 02:31:00

标签: c++ math graphics triangulation convex-polygon

我最近问过this question如何将凹多边形切割成凸多边形,我建议进行三角剖分或多边形分割。

我正在使用的库(SFML \ Box2D)只采用凸形。

这就是我想知道的:

  
      
  1. 多边形分区或多边形的三角剖分是否更快?

  2.   
  3. 多边形分区如何工作/你是如何做到的?

  4.   

不要忘记三角测量不需要凸起的形状......

2 个答案:

答案 0 :(得分:4)

多边形分区将多边形分割为凸多边形 三角测量将其分成三角形。 根据我的理解,分割成三角形需要您首先执行多边形分区,因为将凸多边形划分为三角形是相对微不足道的。
将多边形分裂成凸多边形是困难的部分。 我已经编写了一个程序,可以同时为一个类做,如果你想我可以挖掘它。

这是我的代码: https://github.com/meshko/triangulator/tree/master/som

我没有触及10年,所以要小心。

答案 1 :(得分:4)

对你的问题不是一个完整的答案,但如果你有一个普通的多边形(凹,凸,无论如何)并且你想要对它进行三角测量(对于随后的openGL样式渲染),你可以看看“受约束的Delaunay三角剖分”包。一个这样的例子是Triangle包,它被认为是快速而健壮的。

据我了解,Triangle中使用的算法表现出O(nlogn)运行时复杂性。