2012-11-28 60 views

回答

2

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

设p1和p2为段的顶点。如果我找到了你的想法,那么你需要根据它们的坐标对交点进行排序,并创建一个从小于p1和p2的第一个交点到大于p1和p2的第一个交点的段。 (请注意,这里需要处理几种特殊情况。)

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

更复杂的方法是创建一个包含您的多边形的Arrangement,附加一个Observer,然后将上述支撑线添加到排列中。然后,您可以将自动呼叫所需的信息获取到obs.before_split_face()obs.before_split_face()