1
如果我有一个多边形的2个顶点之间的段,有没有办法扩展这个段直到到达多边形边界,使用CGAL? (如果至少有一个顶点是反射顶点,就会发生这种情况)。CGAL:延伸段直到多边形边界
如果我有一个多边形的2个顶点之间的段,有没有办法扩展这个段直到到达多边形边界,使用CGAL? (如果至少有一个顶点是反射顶点,就会发生这种情况)。CGAL:延伸段直到多边形边界
您可以通过mySegment.supporting_line()
得到该段的支撑线,并检查该线与多边形边界相交的位置。然后,您可以创建基于找到的交点的新段。
设p1和p2为段的顶点。如果我找到了你的想法,那么你需要根据它们的坐标对交点进行排序,并创建一个从小于p1和p2的第一个交点到大于p1和p2的第一个交点的段。 (请注意,这里需要处理几种特殊情况。)
要获得交点,可以遍历多边形的各个部分,并通过CGAL::intersection
与上述支撑线相交。
更复杂的方法是创建一个包含您的多边形的Arrangement,附加一个Observer,然后将上述支撑线添加到排列中。然后,您可以将自动呼叫所需的信息获取到obs.before_split_face()
和obs.before_split_face()
。