Main Content

volume

3 次元アルファ形状の体積

説明

V = volume(shp) は、3 次元アルファ形状 shp の体積を返します。

V = volume(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.

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

totalvol = volume(shp)
totalvol = 
8.2468

2 つの領域のそれぞれの体積を個別に計算します。

regionvols = volume(shp, 1:numRegions(shp))
regionvols = 1×2

    4.1234    4.1234

入力引数

すべて折りたたむ

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 で導入