ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

voronoin

N 次元ボロノイ線図

構文

[V,C] = voronoin(X)
[V,C] = voronoin(X,options)

説明

[V,C] = voronoin(X) は、X のボロノイ線図のボロノイ頂点 V とボロノイ セル C を返します。V は、n 次元空間での numv 個のボロノイ頂点からなる numvn 列の配列です。各行は、ボロノイ頂点に対応します。C は、各要素が対応するボロノイ セルの頂点の V のインデックスを格納したベクトルのセル配列です。X は、mn 列の配列で、m 個の n 次元の点を表します。ここで、n > 1 かつ m >= n+1 です。

V の最初の行は無限大になります。セル配列内のセルのあるインデックスが 1 の場合、対応するボロノイ セルには、V の最初の点、無限大が含まれます。これは、ボロノイ セルに境界がないことを意味しています。

voronoin は、Qhull を使用します。

[V,C] = voronoin(X,options) は Qhull オプションのセル配列を指定します。既定のオプションは、以下のとおりです。

  • 2 次元および 3 次元入力に対して {'Qbb'}

  • 4 次元以上の高次元入力に対して {'Qbb','Qx'}

options[] の場合、既定のオプションが使用されます。code{''} の場合、オプションは既定も含めて使用されません。Qhull とそのオプションの詳細は、http://www.qhull.org を参照してください。

可視化

n 次元のボロノイ線図の個々に閉じられたセルをプロットできます。これを行うには、convhulln を使用して、ボロノイ セルを構成している面の頂点を計算します。次に、patch と他のプロット関数を使って図を作成します。

すべて折りたたむ

ボロノイ頂点とボロノイ線図のセルを計算します。

点の 2 次元配列を定義し、頂点と図のセルを計算します。

X = [0.5 0; 0 0.5; -0.5 -0.5; -0.2 -0.1; -0.1 0.1; 0.1 -0.1; 0.1 0.1]
X = 

    0.5000         0
         0    0.5000
   -0.5000   -0.5000
   -0.2000   -0.1000
   -0.1000    0.1000
    0.1000   -0.1000
    0.1000    0.1000

[V,C] = voronoin(X)
V = 

       Inf       Inf
    0.7000   -1.6500
   -0.0500   -0.0500
   -0.0500   -0.5250
   -1.4500    0.6500
   -1.7500    0.7500
         0    0.2875
    0.3833    0.3833
    0.2875         0
         0         0

C = 7×1 cell array
    [1×4 double]
    [1×5 double]
    [1×4 double]
    [1×4 double]
    [1×4 double]
    [1×5 double]
    [1×4 double]

for ループを使用してセル配列 C の内容を表示します。

for i = 1:length(C)
    disp(C{i});
end
     9     2     1     8
     8     1     6     5     7
     6     1     2     4
     6     4     3     5
    10     3     5     7
    10     3     4     2     9
    10     7     8     9

凸包のパラメーターを指定して、2 次元の点集合のボロノイ頂点とボロノイ線図のセルを計算します。C の最初の行には無限大の点が含まれます。

X = [-1 -1; 1 -1; 1 1; -1 1];
[V,C] = voronoin(X,{'Qbb','Qz'})
V = 

   Inf   Inf
     0     0

C = 4×1 cell array
    [1×2 double]
    [1×2 double]
    [1×2 double]
    [1×2 double]

アルゴリズム

voronoin は、Qhull [1] をベースにしています。Qhull の詳細は、http://www.qhull.org/ を参照してください。

参照

[1] Barber, C. B., D.P. Dobkin, and H.T. Huhdanpaa, “The Quickhull Algorithm for Convex Hulls,” ACM Transactions on Mathematical Software, Vol. 22, No. 4, Dec. 1996, p. 469-483.

R2006a より前に導入

この情報は役に立ちましたか?