2017-09-06 94 views
3

我正在使用C#WPF。將3D點雲分解爲更小的定向邊界框

這是我在尋找一種算法來解決我的問題了一會兒。可能它並不是那麼簡單,而是進入3D圖形。

我具有在3D空間中的2D表面(也可以通過點雲表示)。

我需要該表面分裂成更小的比特,其應裝配到特定盒(對於爲例300×300×15)。

我在尋找,在3D這是不軸線對齊,就像一個體積最小邊框但如果盒子是不是比體積較大的分割佔據的體積爲更小的盒子工作的算法。

我懷疑OBB的優化問題和大量重複的,但我不知道該如何處理這個。

圖片說明了一點問題。紅色和黑色方框不必強制軸對齊,它們應該是<或=到最大框尺寸(尺寸而不是體積!)。

picture

謝謝大家的支持!

+0

您可以製作自己的Collection,其中包含列表的boundList,並且在添加新的點時,您應該檢查是否存在可以適合您新點的boundBoxlist,如果是,則添加到綁定它的集合,如果沒有,創建新的集合,將其設置爲actualX/Y/Z /除以300/300/15並添加新點。 – sTrenat

+0

你可以試試[數學stackexchange](https://math.stackexchange.com),因爲它似乎是你的問題不是一個編程特定的問題。 – dymanoid

回答

0

您的問題是已知的NP-硬覆蓋使用磁盤的形狀的情況下:見F.E. https://en.wikipedia.org/wiki/Geometric_set_cover_problem。我強烈懷疑你的設置封面問題的情況是沒有更好的。所以你不得不求助於線性或多項式時間的近似精確算法。根據您在解決方案中可以犧牲的條件,您可能會用已知的解決方案完成一項完全不同的任務。所以,如果你解釋了你是如何完成這項任務的,你想要解決什麼是真正的任務,那麼我們可以討論一下近似解決方案對你的情況是否足夠好。例如,如果你對於具有次優化大小和方向的定向盒(但足夠好)的點集具有次優(但足夠好)的覆蓋,那麼你可以使用一些快速算法來進行生成epsilon網絡(參見fe https://en.wikipedia.org/wiki/%CE%95-net_(computational_geometry)https://en.wikipedia.org/wiki/Delone_set)和/或貪婪地將點集合細分爲具有針對每個子集的足夠好的定向邊界框的一些貪婪近似的子集。

而且,我也尚未使用它自己的做法,但如果我不得不想想你的任務知道在解決你的約束近似解,我會跟https://arxiv.org/abs/1409.7425沿覺得這是應該作爲一個框架的方法用於生成類似於您的任務系列的近似解決方案。看一看,你可能會看到一些明顯對你有用的東西,或者你可能看到有用的詞彙,以便Google準備好使用解決方案。