Main Content

sortboundaries

polyshape 边界进行排序

说明

示例

polyout = sortboundaries(polyin,criterion,direction) 返回根据指定的 criteriondirection 对边界进行排序后的 polyshape 对象。例如,polyout = sortboundaries(polyin,'area','ascend') 返回边界与 polyin 相同的 polyshapepolyout 按面积升序列出边界。

polyout = sortboundaries(polyin,'centroid',direction,'ReferencePoint',point) 返回根据每个边界的矩心到参考点的距离对边界进行排序后的 polyshape

示例

全部折叠

根据边数对多边形的边界进行排序,以便一次访问一个边界。

创建包含两个边界的多边形,一个边界有三条边,另一个有四条边。

x1 = [0 1 1 0];
y1 = [0 0 1 1];
x2 = [2 3 2.5];
y2 = [2 2 3];
polyin = polyshape({x1,x2},{y1,y2});
plot(polyin)

根据边数按降序对边界进行排序,以便在输出 polyshape 对象中先对有四条边的边界进行索引。

polyout = sortboundaries(polyin,'numsides','descend');

现在您可以基于边界的索引来引用有四条边的边界,例如,当您要访问该边界的顶点或计算其面积时,就可以这样做。

[x,y] = boundary(polyout,1)
x = 5×1

     0
     0
     1
     1
     0

y = 5×1

     0
     1
     1
     0
     0

area(polyout,1)
ans = 1

输入参数

全部折叠

输入 polyshape,指定为标量、向量、矩阵或多维数组。

数据类型: polyshape

排序标准,指定为下列值之一:

  • 'area' - 按边界的面积排序。

  • 'perimeter' - 按边界的周长排序。

  • 'numsides' - 按每个边界的边数排序。

  • 'centroid' - 按每个边界的矩心到参考点 (0,0) 的距离排序。

排序方向,指定为 'ascend''descend'

参考点,指定为二元素行向量。第一个元素是参考点的 x 坐标,第二个元素是 y 坐标。

扩展功能

版本历史记录

在 R2017b 中推出