Main Content

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

nearestvertex

查询最近的 polyshape 顶点

说明

示例

[vertexid,boundaryid,ind] = nearestvertex(polyin,x,y) 查找距离每个二维查询点最近的标量 polyshape 对象的顶点。查询点的坐标在 xy 中指定。输出包含三个向量:

  • vertexid 包含每个查询点的最近顶点对应的 polyin.Vertices 中的行号。

  • boundaryid 包含每个查询点的最近顶点对应的 polyin 的边界索引。

  • ind 包含每个查询点的边界 boundaryid 中最近顶点的索引。

[vertexid,boundaryid,ind] = nearestvertex(polyin,P) 将查询点指定为 2 列矩阵 P,其第一列包含 x 坐标,第二列包含对应的 y 坐标。

示例

全部折叠

创建一个 polyshape 对象,并计算距查询点 (2,1.8) 最近的 polyshape 顶点。

P = [1 1; 3 1; 2 2];
polyin = polyshape(P);
[vertexid,boundaryid,ind] = nearestvertex(polyin,2,1.8);

以黑色绘制 polyshape 和查询点。

plot(polyin)
hold on
plot(2,2.5,'k*')

现在以红色绘制最近的顶点。使用 vertexid 值可以对最近顶点对应的 polyin.Vertices 行进行索引,以访问其坐标。

plot(polyin.Vertices(vertexid,1),polyin.Vertices(vertexid,2),'r*')
hold off

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

输入参数

全部折叠

输入 polyshape,指定为标量 polyshape 对象。

二维查询点的输入坐标,指定为标量或向量。xy 必须具有相同的长度。

数据类型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

二维查询点的输入顶点,指定为 2 列矩阵。P 的第一列包含 x 坐标,第二列包含对应的 y 坐标。

数据类型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

输出参数

全部折叠

顶点 ID,以标量或向量形式返回。vertexid 包含输入 polyshape 中与每个查询点的最近顶点对应的行号。vertexid 的长度与查询点向量或数组相同。

数据类型: double

边界 ID,以标量或向量形式返回。boundaryid 包含每个查询点的最近顶点对应的输入 polyshape 的边界索引。boundaryid 的长度与查询点向量或数组相同。

数据类型: double

索引,以标量或向量形式返回。ind 包含每个查询点的边界 boundaryid 中最近顶点的索引。

数据类型: double

扩展功能

版本历史记录

在 R2018a 中推出