Main Content

perimeter

2 次元アルファ形状の周囲長

説明

L = perimeter(shp) は、2 次元アルファ形状 shp の内部の穴の周囲長も含む総周囲長を返します。

L = perimeter(shp,RegionID) は、アルファ形状内の領域の周囲長を返します。RegionID は領域の ID で、1RegionIDnumRegions(shp) です。

すべて折りたたむ

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];

アルファ半径を 2.5 にしてアルファ形状を作成し、プロットします。

shp = alphaShape(x,y,2.5);
plot(shp)

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

アルファ形状の周囲長を計算します。

totalperim = perimeter(shp)
totalperim = 62.6526

2 つの領域のそれぞれの周囲長を個別に計算します。

regionperims = perimeter(shp, 1:numRegions(shp))
regionperims = 1×2

   31.3263   31.3263

入力引数

すべて折りたたむ

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

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

アルファ形状の領域の ID 番号。1numRegions(shp) の範囲の正の整数スカラーとして指定します。

アルファ形状には、点集合やパラメーターに基づく複数の小さい領域を含めることができます。それらの小さい領域には、面積または体積が大きい順に一意の RegionID が割り当てられます。たとえば、2 つの領域をもつ 3 次元のアルファ形状を考えます。体積が大きい領域の RegionID は 1、体積が小さい領域の RegionID は 2 になります。

例: shp.RegionThreshold = area(shp,numRegions(shp)-2); は、2 次元アルファ形状 shp の領域を小さい方から 2 つ抑制します。

データ型: double

バージョン履歴

R2014b で導入