2012-11-28 62 views

回答

2

您可以通過mySegment.supporting_line()得到該段的支撐線,並檢查該線與多邊形邊界相交的位置。然後,您可以創建基於找到的交點的新段。

設p1和p2爲段的頂點。如果我找到了你的想法,那麼你需要根據它們的座標對交點進行排序,並創建一個從小於p1和p2的第一個交點到大於p1和p2的第一個交點的段。 (請注意,這裏需要處理幾種特殊情況。)

要獲得交點,可以遍歷多邊形的各個部分,並通過CGAL::intersection與上述支撐線相交。

更復雜的方法是創建一個包含您的多邊形的Arrangement,附加一個Observer,然後將上述支撐線添加到排列中。然後,您可以將自動呼叫所需的信息獲取到obs.before_split_face()obs.before_split_face()