2016-12-29 78 views
-2

我計算了網格和平面的交點。作爲輸出,我得到了一系列線段,渲染線條給了我相交輪廓。現在我想填充輪廓所包圍的區域。我面臨的問題是線段沒有任何特定的順序。我正在使用OpenGL進行渲染。填充線段創建輪廓

+1

將它們排序到一個閉合的線條循環並對生成的多邊形進行三角測量。執行幾何操作是沒有任何OpenGL會爲你做的。 – BDL

+0

你能否建議一些快速算法來做同樣的事情?我希望有一些類似於opengl曲面細分的概念,可以幫助我解決這個問題 – user1919600

+0

有人能告訴我這個問題有什麼問題,人們投票了嗎? – user1919600

回答

1

您可以使用C++庫進行幾何處理,如VTK

假設您將一個封閉的網格與一個平面相交,您應該得到一個或多個封閉的多段線。你可以得到你想要的東西通過以下步驟如下:

  • 首先,你需要合併是重疊點,創造了連續折線或一組多個封閉的折線。根據您使用的公差,這將是錯誤的。但這是幾何處理的一部分。其次,您將不得不將單獨的多段線(閉環)傳遞給Delaunay三角剖分(vtkDelaunay2D)等三角測量算法。您還必須將折線的線段作爲輸出三角測量的約束。

問題是,這不適用於所有情況,因爲在填充多段線時很難知道哪邊是內側,哪邊是外側。但這是一個起點。

另一種更穩健的方法可以是在計算與物體的交點時使用平面的密集網格。在相交過程中,您可以計算平面網格的頂點是否位於對象內部或外部。通過這種方式,您可以跟蹤要填寫哪些區域。