MATLAB 帮助中心
对 polyshape 边界进行排序
polyshape
polyout = sortboundaries(polyin,criterion,direction)
polyout = sortboundaries(polyin,"centroid",direction,ReferencePoint=point)
polyout = sortboundaries(polyin,criterion,direction) 返回根据指定的 criterion 和 direction 对边界进行排序后的 polyshape 对象。例如,polyout = sortboundaries(polyin,"area","ascend") 返回边界与 polyshape 相同的 polyin。polyout 按面积升序列出边界。
polyin
criterion
direction
polyout = sortboundaries(polyin,"area","ascend")
polyout
示例
polyout = sortboundaries(polyin,"centroid",direction,ReferencePoint=point) 返回根据每个边界的矩心到参考点的距离对边界进行排序后的 polyshape。
"centroid"
point
全部折叠
根据边数对多边形的边界进行排序,以便一次访问一个边界。
创建包含两个边界的多边形,一个边界有三条边,另一个有四条边。
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"
排序标准,指定为下列值之一:
"area" - 按边界的面积排序。
"perimeter" - 按边界的周长排序。
"numsides" - 按每个边界的边数排序。
"centroid" - 按每个边界的矩心到参考点 (0,0) 的距离排序。
"ascend"
"descend"
排序方向,指定为 "ascend" 或 "descend"。
[0 0]
参考点,指定为二元素行向量。第一个元素是参考点的 x 坐标,第二个元素是 y 坐标。
全部展开
用法说明和限制:
必须启用动态内存分配才能进行代码生成。
名称-值参量必须为编译时常量。
输出 polyshape 对象中的边界顺序可能与 MATLAB 中的不同。但是,将根据指定的输入标准对边界进行排序。
请参阅“C/C++ 代码生成”部分中的用法说明和限制。同样的用法说明和限制也适用于 GPU 代码生成。
在 R2017b 中推出
rmboundary | sortregions | boundary | polyshape
rmboundary
sortregions
boundary
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
欧洲
亚太
联系您当地的办事处