使用CGAL中的2D Arrangements軟件包,在聚合插入大量封閉的,可能相交的曲線後,是否可以快速識別給定閉合曲線內部的哪些面?CGAL Arrangement:曲面中的面
0
A
回答
0
您首先需要有一個布爾每個人臉來知道它是否已被標記(這可以是一個擴展臉型或簡單地std::set
)。 您還需要處理一個面的隊列。
然後從無界面開始並將其標記爲已訪問。 對於每個孔,取相反的半邊(跟蹤對應於半邊的曲線內的事實),將面標記爲已訪問並將其添加到隊列中。
對於隊列中的每個面,對於其外邊界的每個半邊,採取相反的半邊。如果相應的臉部尚未標記,則標記它並考慮交叉邊緣。將該面添加到隊列中。當你完成外部邊界時,你可以考慮每個孔一個半邊。
當隊列爲空時,就完成了。
請注意,包含當前面部的曲線需要使用包含該面部的曲面。因此,我建議隊列存儲每個面的一個半邊(這樣可以直接訪問已經處理的包含面)。
曲線內部的意思是什麼(如果它沒有定義平面的閉合部分)? – sloriot 2014-08-28 05:47:21
我應該提到這一點:所有的曲線都是封閉的。我已經編輯了相應的問題。 – nes 2014-08-28 08:29:20