Main Content

surfaceArea

3 次元アルファ形状の表面積

説明

A = surfaceArea(shp) は、3 次元アルファ形状 shp の内部の隙間の表面積も含む総表面積を返します。

A = surfaceArea(shp,RegionID) は、アルファ形状の領域の表面積を返します。RegionID は領域の ID で、1RegionIDnumRegions(shp) です。

すべて折りたたむ

3 次元の点の集合を作成します。

[x1, y1, z1] = sphere(24);
x1 = x1(:);
y1 = y1(:);
z1 = z1(:);
x2 = x1+5;
P = [x1 y1 z1; x2 y1 z1];
P = unique(P,'rows');

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

shp = alphaShape(P,1.5);
plot(shp)

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

アルファ形状の表面積を計算します。

totalsurfarea = surfaceArea(shp)
totalsurfarea = 
24.9361

各領域の表面積を個別に計算します。

regionsurfareas = surfaceArea(shp, 1:numRegions(shp))
regionsurfareas = 1×2

   12.4680   12.4680

入力引数

すべて折りたたむ

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

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

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

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

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

データ型: double

バージョン履歴

R2014b で導入