帮助中心帮助中心
确定最近的 alpha 形状边界点
I = nearestNeighbor(shp,qx,qy)
I = nearestNeighbor(shp,qx,qy,qz)
I = nearestNeighbor(shp,QP)
I = nearestNeighbor(___,RegionID)
[I,D] = nearestNeighbor(___)
对于二维 alpha 形状 shp,I = nearestNeighbor(shp,qx,qy) 返回最接近查询点的 shp 边界上的点的索引。I 是由最近邻点索引组成的数组,其中每个索引对应于 shp.Points 中的行索引。qx 和 qy 查询坐标的大小必须相同。
shp
I
qx
qy
shp.Points
对于三维 alpha 形状,I = nearestNeighbor(shp,qx,qy,qz) 返回最接近 (qx,qy,qz) 的 shp 的边界点的索引,该索引对应于 shp.Points 中的行索引。qx、qy 和 qz 查询坐标的大小必须相同。
qz
(qx,qy,qz)
示例
I = nearestNeighbor(shp,QP) 将查询点指定为矩阵 QP。对于二维 alpha 形状,QP 是由两列数值组成的矩阵,这两列数值分别代表 qx 和 qy 坐标。对于三维 alpha 形状,QP 包含三列数值,分别代表 qx、qy 和 qz 坐标。
QP
I = nearestNeighbor(___,RegionID) 返回位于由 RegionID 指定的区域边界处的最近点的索引,其中,1 ≤ RegionID ≤ numRegions(shp)。您可以包括上述语法中的任何输入参量。
RegionID
1
numRegions(shp)
此外,[I,D] = nearestNeighbor(___) 还返回查询点与其最近邻点之间的欧几里德距离。D 的大小与 I 相同。
D
全部折叠
创建一个二维点集。
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];
创建并绘制阿尔法半径等于 1 的阿尔法形状。
shp = alphaShape(x,y,1); plot(shp) hold on
计算距离查询点 QP 最近的 shp 边界点。用蓝色绘制查询点,用红色绘制该查询点的最近邻界点。
QP = [6 3]; plot(QP(1),QP(2),'b.','MarkerSize',10) hold on I = nearestNeighbor(shp, QP); plot(shp.Points(I,1),shp.Points(I,2),'r.','MarkerSize',10)
alphaShape
alpha 形状,指定为 alphaShape 对象。有关详细信息,请参阅 alphaShape。
示例: shp = alphaShape(x,y) 根据 (x,y) 点坐标创建一个二维 alphaShape 对象。
shp = alphaShape(x,y)
(x,y)
查询点 x 坐标,指定为数值数组。
数据类型: double
double
查询点 y 坐标,指定为数值数组。
查询点 z 坐标,指定为数值数组。
查询点坐标,指定为两列矩阵或三列矩阵。
对于二维形状,P 的列分别表示 qx 坐标和 qy 坐标。
P
对于三维形状,P 的列分别表示 qx、qy 和 qz 坐标。
alpha 形状中区域的 ID 编号,指定为介于 1 和 numRegions(shp) 之间的一个正整数标量。
alpha 形状可以包含多个较小的区域,具体取决于点集和参数。其中每个较小的区域都分配有一个唯一的 RegionID,以便于依照从最大面积或体积到最小面积或体积的顺序对这些区域进行编号。例如,考虑使用包含两个区域的三维 alpha 形状。体积较大的区域的 RegionID 为 1,较小区域的 RegionID 为 2。
示例: shp.RegionThreshold = area(shp,numRegions(shp)-2); 隐藏二维 alpha 形状 shp 中的两个最小区域。
shp.RegionThreshold = area(shp,numRegions(shp)-2);
最近邻点索引,以整数值数组的形式返回。这些索引对应于 shp.Points 的行索引,指代最接近指定查询点的 shp 边界上的点。
查询点到最近邻点的距离,以数值数组形式返回。D 是二维或三维欧几里德距离,其大小与 I 相同。
backgroundPool
ThreadPool
在 R2015a 中推出
您点击的链接对应于以下 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