Main Content

convexHull

(非推奨) Delaunay 三角形分割の凸包

convexHull(DelaunayTri) は推奨されません。代わりに convexHull(delaunayTriangulation) を使用してください。

DelaunayTri は推奨されません。代わりに delaunayTriangulation を使用してください。

説明

K = convexHull(DT) は、凸包の頂点に対応する点の配列 DT.X のインデックスを返します。

[K,AV] = convexHull(DT) は、凸包と凸包で囲まれた面積または体積を返します。

すべて折りたたむ

2 次元空間の単位正方形内にある乱数の集合の凸包を計算します。

rng default
x = rand(10,1);
y = rand(10,1);
dt = DelaunayTri(x,y);
k = convexHull(dt);

点と凸包をプロットします。

plot(dt.X(:,1),dt.X(:,2),'.','MarkerSize',10)
hold on
plot(dt.X(k,1),dt.X(k,2),'r')
hold off

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 次元空間の単位立方体内にある乱数点の集合の凸包を計算します。convexHull で 2 つの出力を指定して凸包で囲まれた体積も計算します。

rng default
X = rand(25,3);
dt = DelaunayTri(X);
[ch,v] = convexHull(dt)
ch = 30×3

     2     9    13
     2    12    18
     2    13    12
     2    14    25
     2    18    14
     2    23     9
     2    25    23
     5     7    22
     5    10     7
     5    18    10
      ⋮

v = 0.3943

凸包をプロットします。

trisurf(ch,dt.X(:,1),dt.X(:,2),dt.X(:,3),'FaceColor','cyan')

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

入力引数

すべて折りたたむ

Delaunay 三角形分割の表現。DelaunayTri オブジェクトとして指定します。

出力引数

すべて折りたたむ

凸包の頂点のインデックス。列ベクトルまたは行列として返されます。K には、点の配列 DT.X のインデックスが格納されます。点が 2 次元空間にある場合は、K は長さ numf の列ベクトルで、そうでない場合は Knumfndim 列のサイズの行列です。ここで、numf は凸包の面数で、ndim は点の存在する空間の次元です。

凸包の面積または体積。スカラーとして返されます。AV には、凸包で囲まれた面積 (2 次元三角形分割の場合) または体積 (3 次元三角形分割の場合) が格納されます。

詳細

すべて折りたたむ

凸包

点集合 X の凸包は、すべての点集合 X を含む最小の凸領域です。

拡張機能

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

バージョン履歴

R2009a で導入