【问题标题】:CGAL: extend segment until the polygon boundaryCGAL:将线段延伸到多边形边界
【发布时间】:2012-11-15 19:24:56
【问题描述】:

如果我在多边形的 2 个顶点之间有一个线段,有没有办法使用 CGAL 将此线段延伸到多边形边界? (如果至少有一个顶点是反射顶点,就会发生这种情况)。

【问题讨论】:

    标签: c++ polygon segment boundary cgal


    【解决方案1】:

    您可以通过mySegment.supporting_line() 获取线段的支撑线,并检查该线与多边形边界的交点。然后,您可以创建一个基于找到的交点的新段。

    让 p1 和 p2 成为 Segment 的顶点。如果我猜对了,您可能希望按坐标对交点进行排序,并创建一个从小于 p1 和 p2 的第一个交点到大于 p1 和 p2 的第一个交点的段。 (注意这里要处理几种特殊情况。)

    要获得交点,您可以遍历多边形的各个部分,并通过CGAL::intersection 将每个部分与提到的支撑线相交。

    更复杂的方法是创建一个包含多边形的Arrangement,将Observer 附加到它,然后将提到的支撑线添加到排列中。然后,您将通过自动调用obs.before_split_face()obs.before_split_face() 获得所需的信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-26
      • 1970-01-01
      • 2021-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-09
      • 2021-06-18
      相关资源
      最近更新 更多