Main Content

numRegions

アルファ形状の領域の数

説明

N = numRegions(shp) は、アルファ形状を構成する独立した領域の数を返します。アルファ半径が Inf の場合、アルファ形状は凸包であり、領域の数は 1 つです。アルファ半径の値を小さくすると、点集合によっては、個別の領域に分割されることがあります。

すべて折りたたむ

2 次元の点の集合を作成してプロットします。

th = (pi/12:pi/12:2*pi)';
x1 = [reshape(cos(th)*(1:5), numel(cos(th)*(1:5)),1); 0];
y1 = [reshape(sin(th)*(1:5), numel(sin(th)*(1:5)),1); 0];
x = [x1; x1+15;];
y = [y1; y1];
plot(x,y,'.')
axis equal

Figure contains an axes object. The axes contains a line object which displays its values using only markers.

アルファ半径を 7 にしてアルファ形状を作成し、その形状の独立した領域の数をクエリします。

shp = alphaShape(x,y,7);
nregions = numRegions(shp)
nregions = 
1

アルファ半径の値を 2.5 にして境界を明確にし、独立した領域の新しい数を取得します。

shp.Alpha = 2.5;
nregions = numRegions(shp)
nregions = 
2

アルファ形状をプロットして境界の質を確認します。

plot(shp)

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

入力引数

すべて折りたたむ

アルファ形状。alphaShape オブジェクトとして指定します。詳細については、alphaShape を参照してください。

例: shp = alphaShape(x,y) は、座標 (x,y) の点から 2 次元の alphaShape オブジェクトを作成します。

バージョン履歴

R2014b で導入