30.3 Convex Hull

Last-modified: 2025-03-08 (土) 17:08:04

30.3 凸包
点の集合の凸包は、すべての点を含む最小の凸包です。Octave には、2 次元および N 次元の点の集合の凸包を計算する 関数convhull と関数があります。convhulln

:H = 畳み込み (x, y)
:H = 畳み込み (x, y, z)
:H = 畳み込み (x)
:H = 畳み込み (…, options)
:畳み込み[H, V] = (…)
2 次元または 3 次元の点の集合の凸包を計算します。

ハルH は、囲むハルを形成するポイントを指定する、元のポイント セットへの線形インデックス ベクトルです。2-D 入力の場合のみ、出力はハルの周囲を反時計回りに順序付けられます。

入力x は、最初の列に x データ、2 番目の列に y データ、オプションの 3 番目の列に z データが含まれる、2 列または 3 列の行列になる場合もあります。

オプションの最終引数は文字列または文字列のセル配列でなければならず、基礎となる qhull コマンドに渡されるオプションが含まれます。詳細については、Qhull ライブラリのドキュメント (http://www.qhull.org/html/qh-quick.htm#options)を参照してください。デフォルトのオプションは です{"Qt"}。

optionsが存在しない場合は、[]デフォルトの引数が使用されます。それ以外の場合は、options がデフォルトの引数リストを置き換えます。デフォルトにユーザー オプションを追加するには、 optionsでデフォルトの引数を繰り返す必要があります。引数を渡さない場合は、 null 文字列を使用します。

2 番目の出力Vが要求された場合、囲む凸包の体積が計算されます。

参照: convhulln、delaunay、voronoi。

:h = コンヴハルン (pts)
:h = コンヴハルン (pts, options)
:コンヴハルン[h, v] = (…)
点集合ptsの凸包を計算します。

ptsは、次元dimの空間にn個の点を含むサイズ[n, dim]の行列です。

ハルhは、点の集合へのインデックス ベクトルであり、どの点が囲むハルを形成するかを指定します。

オプションの 2 番目の引数は文字列または文字列のセル配列でなければならず、基になる qhull コマンドに渡されるオプションが含まれます。詳細については、Qhull ライブラリのドキュメント (http://www.qhull.org/html/qh-quick.htm#options)を参照してください。デフォルトのオプションは、入力の次元によって異なります。

2D、3D、4D:オプション={"Qt"}
5D以上:オプション={"Qt", "Qx"}
optionsが存在しない場合は、[]デフォルトの引数が使用されます。それ以外の場合は、options がデフォルトの引数リストを置き換えます。デフォルトにユーザー オプションを追加するには、 optionsでデフォルトの引数を繰り返す必要があります。引数を渡さない場合は、 null 文字列を使用します。

2 番目の出力vが要求された場合、囲む凸包の体積が計算されます。

参照: convhull、delaunayn、voronoin。

の使用例convhullは

x = -3:0.05:3;
y = 絶対値 (sin (x));
k = 畳み込み包 (x, y);
プロット(x(k), y(k), "r-", x, y, "b+");
軸 ([-3.05, 3.05, -0.05, 1.05]);
上記の出力は図30.5に示されています。

コンヴハル
図30.5:単純な点集合の凸包