Main Content

convexHull

Delaunay 三角形分割の凸包

説明

C = convexHull(DT) は、Delaunay 三角形分割の凸包の頂点を返します。

[C,v] = convexHull(DT) は、凸包で囲まれた領域または体積も返します。

すべて折りたたむ

2 次元 Delaunay 三角形分割の凸包を計算してプロットします。

一連の 2 次元の点から Delaunay 三角形分割を作成します。

rng default;
x = rand([10,1]);
y = rand([10,1]);
DT = delaunayTriangulation(x,y);

凸包を計算します。

C = convexHull(DT);

三角形分割をプロットし、凸包を赤で強調表示します。

plot(DT.Points(:,1),DT.Points(:,2),'.','MarkerSize',10)
hold on
plot(DT.Points(C,1),DT.Points(C,2),'r') 

Figure contains an axes object. The axes object contains 2 objects of type line. One or more of the lines displays its values using only markers

3 次元 Delaunay 三角形分割の凸包を計算してプロットします。

一連の 3 次元の点から Delaunay 三角形分割を作成します。

rng('default');
P = rand([25,3]);
DT = delaunayTriangulation(P);

凸包、および凸包で囲まれた体積を計算します。

[C,v] = convexHull(DT);

体積を表示して凸包をプロットします。

v
v = 0.3943
trisurf(C,DT.Points(:,1),DT.Points(:,2),DT.Points(:,3), ...
       'FaceColor','cyan')

Figure contains an axes object. The axes object contains an object of type patch.

入力引数

すべて折りたたむ

Delaunay 三角形分割。スカラーの delaunayTriangulation オブジェクトとして指定します。

データ型: delaunayTriangulation

出力引数

すべて折りたたむ

凸包の頂点。頂点 ID の列ベクトルまたは行列として返されます。

  • DT が 2 次元の三角形分割である場合、C は凸包の周囲の頂点 ID の列を含む列ベクトルです。頂点 ID は Points プロパティ内の頂点の行番号です。

  • DT が 3 次元の三角形分割である場合、C は凸包の三角形頂点の連結リストを含む 3 列の行列です。

データ型: double

凸包の面積または体積。スカラーとして返されます。

データ型: double

拡張機能

スレッドベースの環境
MATLAB® の backgroundPool を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ の ThreadPool を使用してコードを高速化します。

バージョン履歴

R2013a で導入