ヘルプ センターヘルプ センター
点がアルファ形状の内側にあるかどうかを判定
tf = inShape(shp,qx,qy)
tf = inShape(shp,qx,qy,qz)
tf = inShape(shp,QP)
tf = inShape(___,RegionID)
[tf,ID] = inShape(___)
例
tf = inShape(shp,qx,qy) は、2 次元のクエリ点 (qx,qy) が 2 次元アルファ形状 shp の内側にある場合、logical 1 (true) を返します。それ以外の場合、inShape は logical 0 (false) を返します。qx 引数と qy 引数は数値配列で、それぞれ対応する要素でクエリ点の (x,y) 座標を指定します。
tf
shp
qx
qy
(qx,qy)
1
true
inShape
0
false
(x,y)
tf = inShape(shp,qx,qy,qz) は、3 次元のクエリ点 (qx,qy,qz) が 3 次元アルファ形状 shp の内側にあるかどうかをテストします。
qz
(qx,qy,qz)
tf = inShape(shp,QP) は、2 列または 3 列の行列で 2 次元または 3 次元のクエリ点を指定します。
QP
tf = inShape(___,RegionID) は、前述のいずれかの構文を使用して、クエリ点がアルファ形状の特定の領域内にあるかどうかをテストします。RegionID は領域の ID で、1 ≤ RegionID ≤ numRegions(shp) です。
RegionID
numRegions(shp)
[tf,ID] = inShape(___) は、クエリ点を含むアルファ形状の領域の ID も返します。クエリ点がアルファ形状内にない場合、ID は NaN になります。
ID
NaN
すべて折りたたむ
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)
アルファ形状の近傍にあるクエリ点のデカルト格子を作成します。
[qx, qy] = meshgrid(-10:2:25, -10:2:10);
クエリ点がアルファ形状の内側にあるかどうかを確認し、内側にある点を赤でプロットします。アルファ形状の外側にあるクエリ点は青でプロットします。
in = inShape(shp,qx,qy); plot(shp) hold on plot(qx(in),qy(in),'r.') plot(qx(~in),qy(~in),'b.')
alphaShape
アルファ形状。alphaShape オブジェクトとして指定します。詳細については、alphaShape を参照してください。
例: shp = alphaShape(x,y) は、座標 (x,y) の点から 2 次元の alphaShape オブジェクトを作成します。
shp = alphaShape(x,y)
クエリ点の x 座標。数値配列として指定します。
データ型: double
double
クエリ点の y 座標。数値配列として指定します。
クエリ点の z 座標。数値配列として指定します。
クエリ点の座標。2 列の行列 (2 次元) または 3 列の行列 (3 次元) として指定します。
2 次元の場合、QP の各列は x 座標と y 座標を表します。
x
y
3 次元の場合、QP の各列は x 座標、y 座標、z 座標を表します。
z
アルファ形状の領域の ID 番号。1 ~ numRegions(shp) の範囲の正の整数スカラーとして指定します。
アルファ形状には、点集合やパラメーターに基づく複数の小さい領域を含めることができます。それらの小さい領域には、面積または体積が大きい順に一意の RegionID が割り当てられます。たとえば、2 つの領域をもつ 3 次元のアルファ形状を考えます。体積が大きい領域の RegionID は 1、体積が小さい領域の RegionID は 2 になります。
例: shp.RegionThreshold = area(shp,numRegions(shp)-2); は、2 次元アルファ形状 shp の領域を小さい方から 2 つ抑制します。
shp.RegionThreshold = area(shp,numRegions(shp)-2);
クエリ点の状態。logical 配列として返されます。tf のサイズは、クエリ点を指定する入力 (qx、qy、qz、QP) と同じになります。
inShape は、点がアルファ形状の内側または境界上にある場合、logical 1 (true) を返します。
クエリ点を含む領域の ID。数値配列として返されます。ID のサイズは tf と同じです。
R2014b で導入
alphaShape | plot
plot
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Contact your local office