Main Content

alphaTriangulation

アルファ形状を塗りつぶす三角形分割

説明

tri = alphaTriangulation(shp) は、アルファ形状の領域を定義する三角形分割を返します。tri の各行で、頂点 ID (shp.Points 行列の行番号) で定義される三角形または四面体を指定します。

tri = alphaTriangulation(shp,RegionID) は、アルファ形状の領域の三角形分割を返します。RegionID は領域の ID で、1RegionIDnumRegions(shp) です。

[tri,P] = alphaTriangulation(___) は、前述のいずれかの構文を使用して頂点の座標の行列 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 にして点集合のアルファ形状を作成し、プロットします。

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

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

alphaTriangulation を使用して、アルファ形状の領域を定義する三角形分割に戻します。

tri = alphaTriangulation(shp);

アルファ形状を構成する四面体の総数を求めます。

numtetrahedra = size(tri,1)
numtetrahedra = 3755

入力引数

すべて折りたたむ

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

出力引数

すべて折りたたむ

三角形分割。行列として返されます。trimtrinv 列の行列で、mtri はアルファ形状を構成する三角形または四面体の数、nv は頂点の数です。nv の値は、2 次元アルファ形状の場合は 3、3 次元アルファ形状の場合は 4 です。

alphaTriangulation で指定する出力の数に応じて、tri で使用される頂点のインデックスが変わることがあります。

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

バージョン履歴

R2014b で導入