2012-02-21 158 views
2

我想要做以下幾點:我在3D空間中有一些面作爲多邊形。我有一個投影方向和一個投影平面。我在投影平面上有一個凸形剪裁多邊形。我想要得到一個多邊形,代表飛機上所有面部的陰影。多邊形添加算法

我到現在爲止所做的工作:我計算面在投影平面中的多邊形投影。

我可以使用Sutherland-Hodgman算法來剪切所有單焦投影多邊形以剪輯到所需區域。

現在我的問題:如何將投影(可能是剪切)的多邊形結合在一起?我必須使用像Margalit/Knott這樣的算法嗎?

算法應該非常高效,因爲它必須經常運行。那麼你認爲什麼算法?

是否可以修改Sutherland-Hodgman算法來解決合併問題?

+0

「臉」?這些是多面體的面孔嗎? – Beta 2012-02-21 15:51:36

+0

有沒有可能面部是凸多面體的面?如果是這樣,那麼計算頂點投影的凸包。然後剪輯該多邊形。 – btilly 2012-02-21 16:22:19

+0

是的,臉是來自多面體。單個多面體可以被限制爲凸出的。但是,所有面孔的整體結合將不會是凸面的。 – 2012-02-21 17:36:23

回答

0

我目前正在使用Bentley-Ottmann實現這個算法(n個凹多邊形的聯合),以找到所有的邊交點,同時跟蹤邊區段兩邊的多邊形嵌套層次(每邊有多少個重疊的多邊形線是感人的)。將一邊的嵌套層次爲0的邊輸出到結果多邊形。完成正確的操作相當棘手。用不同的算法設計現有的解決方案,可以發現:

http://sourceforge.net/projects/polyclipping/