2011-06-20 23 views
0

ポイントセット(つまり、頂点の3XN配列)が与えられていると、どのようにしてmatlabを使用して三角形分割できますか? ポイントセットはオブジェクトのある表面を表し、ノイズを含まないと仮定します。matlab:三角測量ポイントセット


EDIT: 選ばれた回答は、メッシュの四面体を作成するための方法を提供します。私は三角測量を探していた。凸形状の私の具体的なケースでは、凸包(回答のコメントに示唆されているようにconvhullnを使用)は十分でした。

+0

可能重複に四面体メッシュを変換:// stackoverflowの.com/questions/5492806/plotting-a-surface-from-interior-3d-scatter-points-in-matlab) – gnovice

答えて

1

ドロネー三角形分割を作成するには、クラスDELAUNAYTRI使用することができます:あなたはcoordinatesは、バイ・3 N-(または2)の配列である

DT = DelaunayTri(coordinates); 

を呼び出すことにより、三角測量のオブジェクトを作成

は、頂点座標。

、三角測量にアクセスプロットに

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は2Dで三角形分割します。すなわち、[X Y]座標ではなく[X Y]座標になります。 delaunay3もありますが、それは三角形分割ではなく四面体の分解を生成します(メッシュは表面だけでなく体積も持っていると仮定しています)。 – olamundo

関連する問題