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()
。