【问题标题】:Use Constraint delaunay triangulation to Triangulate a Polygon使用约束 delaunay 三角剖分对多边形进行三角剖分
【发布时间】:2011-07-15 20:41:28
【问题描述】:

我有一个约束 delaunay 三角剖分 (CDT) 算法,并且我有一个多边形(可以是凹面或凸面)作为输入。如何在不引入新点的情况下使用该约束 delaunay 三角剖分算法将多边形分解为三角形?

编辑:所有三角形的并集必须等于多边形。所以不能只把CDT和边界作为约束边来生成三角形,因为这会产生一个凸多边形,不管输入是凹的还是凸的。

【问题讨论】:

  • 所以你说你有算法,但是你想知道怎么用?
  • @Steven,我认为不能直接在凹多边形上使用 CDT,因为三角剖分的总和将是 convex
  • 你是对的。帮不了你,我假设你已经用谷歌搜索了,但也许是this is useful
  • 这个问题和stackoverflow.com/questions/996620/…有什么不同?

标签: c# c++ computational-geometry


【解决方案1】:

由于您有一个多边形而不是点云,因此最简单的方法是天真地进行三角剖分,然后访问每个边并使用简单的线-多边形相交测试来测试它是否在原始多边形之外。

根据您的算法,您可以将此测试作为三角形细分的一部分并在最后跳过该通道。我敢肯定有一个更好的方法,但这是第一个想到的。

编辑:

我在我的三角测量仪上实现了这个,但它给出了错误的结果,因为我没有实现约束。如果您确保使用所有多边形边缘,那么我相信它应该可以工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-08
    • 1970-01-01
    • 2014-01-21
    • 2015-01-07
    • 2016-09-28
    • 1970-01-01
    • 2019-10-05
    相关资源
    最近更新 更多