【问题标题】:How to triangulate a polygon with and without vertices and holes inside - delaunay triangulation possible?如何对内部有和没有顶点和孔的多边形进行三角剖分 - 可以进行德劳内三角剖分吗?
【发布时间】:2021-10-09 12:42:00
【问题描述】:

我遇到了以下问题:我正在研究一种算法,输出将是一个任意多边形。多边形可以是凹面的,其中有孔,也可以有边角为 180 度的顶点。

我需要对所述多边形进行三角剖分,其中包含和不包含其他顶点。 delaunay 三角剖分可以处理这个问题,特别是如果我只有多边形内部没有顶点?我也许可以避免多边形内的洞,如果这样可以减轻事情。

感谢阅读

【问题讨论】:

    标签: visualization polygon delaunay triangle


    【解决方案1】:

    您可以使用约束三角剖分(Delaunay 与否)对多边形进行三角剖分。有一个使用CGAL的例子here

    【讨论】:

      【解决方案2】:

      【讨论】:

        【解决方案3】:

        您可以使用Triangle

        通过命令行运行三角形,您创建一个 ASCII .poly file,指定输入(即您的多边形)的顶点和边以及域中的任何孔。每个孔都由其 xyz 位置定义。例如,如果我有一个里面有一个三角形孔的正方形域,我的输入可能如下所示:

        7 2 0 0  # 7 vertices
        1 1 -1
        2 1 1
        3 -1 1
        4 -1 -1
        5 -.5 -.5
        6 .5 -.5
        7 0 .5
        7 0      # 7 segments: four for the square and three for the hole
        1 1 2
        2 2 3
        3 3 4
        4 4 1
        5 5 6
        6 6 7
        7 7 5
        1      # 1 hole
        1 0.0 0.0
        

        如果要细化网格(即在内部添加顶点),可以使用 -a 选项(限制三角形的最大面积)或 -q 选项(控制生成的三角形的质量但不直接限制大小)。命令行开关的文档是here

        【讨论】:

          猜你喜欢
          • 2012-04-27
          • 2012-05-06
          • 2011-06-11
          • 2020-11-21
          • 2011-07-15
          • 1970-01-01
          • 2020-04-21
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多