【问题标题】:Split concave polygon in convex ones在凸多边形中拆分凹多边形
【发布时间】:2015-08-09 16:39:58
【问题描述】:

是否有任何简单算法可以将凹多边形拆分为凸多边形或用三角形表示多边形。我知道有一个关于三角测量的维基百科条目,但这并没有真正帮助我。我知道 Stackoverflow 上已经有一个问题,但这对我没有多大帮助。我将不胜感激任何伪代码(或可理解的编程语言中的真实代码)来打破凸多边形或三角形中的凹多边形。顺便说一句,该算法也应该适用于凸多边形,而不是弄乱它们。

感谢您的帮助!

【问题讨论】:

  • 如何表示多边形?你知道如何判断一个顶点是凸的还是凹的?
  • 用n个坐标点表示。是的,所有内角都必须小于 180 度才能成为凸多边形。
  • 所以找一个凸顶点(肯定有),把它分割成一个三角形。 {..., A, B, C, D, E, ...} => {..., A, B, D, E, ...} + {B, C , D}。继续,直到你只有三角形。这适用于所有没有孔的多边形,无论是凸面还是凹面。
  • 我仍然需要测试三角形 (B, D) 的新线是否穿过多边形的边之一,不是吗?
  • 为什么维基百科的文章对您没有帮助?你读过关于剪耳的文章吗?我认为,这正是您所寻求的。

标签: polygon computational-geometry


【解决方案1】:

根据评论者的建议,剪耳(剪耳)应该是最直接的三角测量方法。为了在实践中加快耳朵的验证过程,可以使用几何网格。

编写健壮和高性能的代码,尤其是几何问题是非常具有挑战性的。为什么不使用现有的实现,例如 triangleCGAL

为了通过 python 使用 CGAL,可以选择 SWIG。

【讨论】:

    猜你喜欢
    • 2011-01-28
    • 2011-05-09
    • 2020-11-02
    • 2013-07-11
    • 2012-04-30
    • 2012-11-05
    • 2013-02-24
    • 2018-05-08
    • 1970-01-01
    相关资源
    最近更新 更多