2011-06-20 56 views
0

給定一個點集(即3XN頂點數組),我如何使用matlab對它進行三角化? 假設點集確實表示某個物體的某個表面,並且不包含任何噪音。matlab:三角點集


編輯: 所選擇的答案給出了一個方法來創建一個網格的四面體。我正在尋找三角測量;對於我的凸形的特定情況,凸包(使用convhulln,如答案的評論中所建議的)就足夠了。通過調用

DT = DelaunayTri(coordinates); 

創建三角測量對象,其中coordinates是N-通過-3(或2)陣列的:

+0

可能重複://計算器.com/questions/5492806/plotting-a-surface-from-a-set-of-interior-3d-scatter-points-in-matlab) – gnovice

回答

1

要創建的Delaunay三角測量,則可以使用類DELAUNAYTRI頂點座標。

要訪問三角測量,調用

tri = DT.triangulation; 

要繪製,例如呼叫

patch('Vertices',DT.X,'Faces',DT.triangulation) 
+0

'???未定義的函數或變量'DelaunayTri'。 - 我猜這隻適用於MATLAB版本> 2008(這是我的) - 我已經投票了,但有一個明確的代碼段,可以實現這個在2008年的作品? – olamundo

+0

@noam:至少你的版本應該包含'delanauy'(http://www.mathworks.com/help/techdoc/ref/delaunay.html),它提供了類似的功能。謝謝 – eat

+0

@eat - delaunay以二維方式進行三角化,即獲得[X Y]座標,而不是[X Y Z]。還有delaunay3,但是這會產生四面體分解,而不是三角形(它假定網格具有體積而不僅僅是曲面)。請糾正我,如果你認爲我錯了 – olamundo