2014-12-22 103 views
1

我有一個三角形網格的表面描述。我還有一個位於表面之外的點P.我怎樣才能找到最接近P的表面上的點?三角形網格上的最近點

我知道如何找到最近的頂點,但最接近的點可能是頂點之間。我也想過做一個光線追蹤,但這並不總是奏效,因爲我不知道方向。

回答

2

找到從這個點到每個三角形的最小距離,並找到它們的最小最小距離是唯一的方法。如果你有很多點來尋找離三角形網格最近的距離(這個網格又可能包含很多很多的三角形),這種蠻力法在計算上會非常昂貴。如果你有多個點,我建議首先爲你的三角形網格創建一個八叉樹。這將加快最小距離計算(多點)。

0

我找不到任何內置於matlab的內容,但是我找到了可能對您有幫助的說明/視頻。希望別人能找到更有用的東西,如果這還不夠的話。該網站是here

看起來它必須是一個交互式解決方案。如果鏈接本身沒有幫助,那麼該鏈接中留下了一些可能有用的評論。

希望這會有所幫助。

0

您可以最小化到這個question中討論的每個三角形的距離。

0

一種可能性是使用用戶貢獻從FileExchange:

  • 功能point2trimesh由Daniel弗裏希返回網格上作爲第二輸出的最近點。有可能使用並行化,使其相當快
  • 函數pointTriangleDistance Gwendolyne Fischer只處理單個面的情況,但很容易擴展爲三角形網格。