Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

inShape

确定点是否在 alpha 形状内部

说明

示例

对于位于二维 alpha 形状 shp 内的二维查询点 (qx,qy)tf = inShape(shp,qx,qy) 返回逻辑值 1 (true)。否则,inShape 返回逻辑值 0 (false)。qxqy 参数是数值数组,其对应元素用于指定 (x,y) 查询点的坐标。

tf = inShape(shp,qx,qy,qz) 检验三维查询点 (qx,qy,qz) 是否位于三维 alpha 形状 shp 内。

tf = inShape(shp,QP) 在包含 2 列或 3 列的矩阵中指定二维或三维查询点的坐标。

tf = inShape(___,RegionID) 结合上述语法检验这些查询点是否位于 alpha 形状的特定区域内。RegionID 是该区域的 ID 并且 1RegionIDnumRegions(shp)

[tf,ID] = inShape(___) 还返回 alpha 形状内查询点所在区域的 ID。对于不在 alpha 形状内的查询点,IDNaN

示例

全部折叠

创建一个二维点集。

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];

使用 alpha 半径 2.5 创建并绘制一个 alpha 形状。

shp = alphaShape(x,y,2.5);
plot(shp)

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

在 alpha 形状附近创建一个笛卡尔查询点网格。

[qx, qy] = meshgrid(-10:2:25, -10:2:10);

检查这些查询点是否在 alpha 形状内部,如果是,则将其绘制为红色。用蓝色绘制位于 alpha 形状外部的查询点。

in = inShape(shp,qx,qy);
plot(shp)
hold on
plot(qx(in),qy(in),'r.')
plot(qx(~in),qy(~in),'b.')

Figure contains an axes object. The axes object contains 3 objects of type patch, line. One or more of the lines displays its values using only markers

输入参数

全部折叠

alpha 形状,指定为 alphaShape 对象。有关详细信息,请参阅 alphaShape

示例: shp = alphaShape(x,y) 根据 (x,y) 点坐标创建一个二维 alphaShape 对象。

查询点 x 坐标,指定为数值数组。

数据类型: double

查询点 y 坐标,指定为数值数组。

数据类型: double

查询点 z 坐标,指定为数值数组。

数据类型: double

查询点坐标,指定为包含两列的矩阵(二维)或包含三列的矩阵(三维)。

  • 对于二维形状,QP 的列分别表示 x 坐标和 y 坐标。

  • 对于三维形状,QP 的列分别表示 xyz 坐标。

数据类型: double

alpha 形状中区域的 ID 编号,指定为介于 1numRegions(shp) 之间的一个正整数标量。

alpha 形状可以包含多个较小的区域,具体取决于点集和参数。其中每个较小的区域都分配有一个唯一的 RegionID,以便于依照从最大面积或体积到最小面积或体积的顺序对这些区域进行编号。例如,考虑使用包含两个区域的三维 alpha 形状。体积较大的区域的 RegionID 为 1,较小区域的 RegionID 为 2。

示例: shp.RegionThreshold = area(shp,numRegions(shp)-2); 隐藏二维 alpha 形状 shp 中的两个最小区域。

数据类型: double

输出参数

全部折叠

查询点的状态,以逻辑数组形式返回。tf 的大小等于指定查询点的输入(qxqyqzQP)的大小。

对于位于 alpha 形状内或恰好在边界上的点,inShape 返回逻辑值 1 (true)。

查询点所在区域的 ID,以数值数组形式返回。ID 的大小与 tf 相同。

版本历史记录

在 R2014b 中推出

另请参阅

|