Main Content

delaunayn

N 次元 Delaunay 三角形分割

説明

T = delaunayn(X) は、X のデータ点がまったくシンプレックスの外接球に入らないようなシンプレックスの集合を計算します。シンプレックスの集合は Delaunay 三角形分割を形成します。X は、n 次元空間の m 個の点を表す mn 列の配列です。T は、numt 行 (n+1) 列の配列で、各行は、対応するシンプレックスの頂点の X のインデックスを含んでいます。

T = delaunayn(X,opts) は、Delaunay 三角形分割の計算時に使用する Qhull オプションの cell 配列を指定します。

すべて折りたたむ

以下の例では、n = 3 の場合の n 次元 Delaunay 三角形分割を作成します。

d = [-1 1];
[x,y,z] = meshgrid(d,d,d);  % A cube
x = [x(:);0];
y = [y(:);0];
z = [z(:);0];
% [x,y,z] are corners of a cube plus the center.
X = [x(:) y(:) z(:)];
Tes = delaunayn(X)
Tes = 12×4

     4     3     9     1
     4     9     2     1
     7     9     3     1
     7     5     9     1
     7     9     4     3
     7     8     4     9
     6     2     9     1
     6     9     5     1
     6     4     9     2
     6     4     8     9
      ⋮

関数 tetramesh を使用して、対応するシンプレックスを形成する四面体を可視化できます。関数 camorbit は、Figure をわかりやすく表示するようにカメラの位置を回転します。

tetramesh(Tes,X);
camorbit(20,0)

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

入力引数

すべて折りたたむ

点。行列として指定します。X は、n 次元空間内の m 個の点を表す mn 列の行列です。

データ型: double

Qhull のオプション。使用する Qhull アルゴリズムを示す、文字ベクトルの cell 配列として指定します。オプションのリストについては、Qhull control options を参照してください。

既定のオプションは、以下のとおりです。

  • 2 次元および 3 次元入力の場合、{'Qt','Qbb','Qc'}

  • 4 次元以上の入力の場合、{'Qt','Qbb','Qc','Qx'}

opts[] の場合、既定のオプションが使用されます。opts が空の cell 配列 {''} の場合、既定の設定も含め、オプションは使用されません。

ヒント

  • 関数 delaunayn の出力のプロットは、n の値に依存します。

    • n = 2 の場合、関数 delaunay と同様に関数 triplot、関数 trisurf、関数 trimesh のいずれかを使用します。

    • n = 3 の場合、tetramesh を使用します。

      小平面の色をより詳細に制御するには、関数 patch を使用して出力をプロットします。

    • n > 3 の場合は、delaunayn の出力をプロットできません。

アルゴリズム

delaunayn は、Qhull をベースにしています。詳細については、http://www.qhull.org/ を参照してください。著作権に関する情報は、http://www.qhull.org/COPYING.txt を参照してください。

拡張機能

バージョン履歴

R2006a より前に導入