Main Content

boundaryFacets

アルファ形状の境界の小平面

説明

bf = boundaryFacets(shp) は、アルファ形状の境界を構成する小平面を表す行列を返します。小平面は、2 次元の場合はエッジ セグメント、3 次元の場合は三角形を表します。小平面の頂点は shp.Points 行列のインデックスになります。

bf = boundaryFacets(shp,RegionID) は、アルファ形状の領域の境界を構成する小平面を返します。RegionID は領域の ID で、1RegionIDnumRegions(shp) です。

[bf,P] = boundaryFacets(___) は、前述のいずれかの構文を使用して頂点の座標の行列 P も返します。

すべて折りたたむ

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)
axis equal

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

アルファ形状の境界だけを計算してプロットします。

[tri, xyz] = boundaryFacets(shp);
trisurf(tri,xyz(:,1),xyz(:,2),xyz(:,3),...
    'FaceColor','cyan','FaceAlpha',0.3) 
axis equal

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

入力引数

すべて折りたたむ

アルファ形状。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

出力引数

すべて折りたたむ

境界の小平面。行列として返されます。bfmn 列サイズの行列で、m は境界の小平面の数、n は小平面ごとの頂点の数です。

頂点の座標。行列として返されます。PNdim 列のサイズの行列で、N はアルファ形状の境界上にある点の数、dim2 (2 次元アルファ形状の場合) または 3 (3 次元アルファ形状の場合) です。

バージョン履歴

R2014b で導入