文档

polyshape

二维多边形

描述

polyshape函数创建一个由2-D顶点定义的多边形,并返回polyshape对象,其属性描述其顶点、实区和孔。例如,Pgon = polyhape ([0 0 1 1],[1 0 0 1])创建由(0,1)、(0,0)、(1,0)和(1,1)四个点定义的实心正方形。

>> pgon = polyhape ([0 0 1 1],[1 0 0 1])
pgon = multihape with properties: Vertices: [4×2 double] NumRegions: 1 NumHoles: 0
> >的情节(pgon)

创建

当创建polyshape对象时,输入顶点应定义多边形的一个或多个边界,这些边界没有交集且嵌套正确。否则,polyshape函数根据需要自动更改输入顶点,以创建定义良好的多边形。

描述

Pgon =多形性()创建一个空polyshape对象。

例子

多形体(xy创建一个polyshape由向量定义的二维顶点x-坐标和对应的向量y坐标。x而且y长度必须相同,且至少有三个元素。

例子

多形体(P创建一个polyshape类中定义的二维顶点N2矩阵P,在那里N是顶点的数目。的第一列P定义了x-坐标,第二列定义y坐标。

例子

多形体({x1, x2,…,xM}},{y1, y2,…,yM}创建一个多边形,由边界,向量的位置x每个边界的-坐标一起列在单元格数组中,对应的向量y-坐标也一起列在单元格数组中。每一个x必须与对应的长度相同y,但顶点的数量可以在任意th和j边界。

例子

多形体(___名称,值属性的附加参数polyshape对象的前面任何语法。

输入参数

全部展开

x-多边形顶点的坐标,指定为一个向量。可以同时表示多个边界的坐标在每个边界之间。例如,pgon = polyhape ([0 0 1 NaN 1 5 5],[1 0 0 NaN 5 5 1])创建一个polyshape由两个实心三角形组成。

非类型的数字输入坐标自动转换为类型

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

y-多边形顶点的坐标,指定为一个向量。可以同时表示多个边界的坐标在每个边界之间。例如,pgon = polyhape ([0 0 1 NaN 1 5 5],[1 0 0 NaN 5 5 1])创建一个polyshape由两个实心三角形组成。

非类型的数字输入坐标自动转换为类型

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

多边形的二维顶点,指定为2列矩阵。的第一列P包含了x-坐标的顶点,第二列包含y坐标。P必须至少有3行。

可以同时表示多个边界的坐标在每个边界之间。例如,Pgon =多相([10 0;0 0;0 1;南南;1 - 5;5 5;5 (1)创建一个polyshape由两个实心三角形组成。

非类型的数字输入坐标自动转换为类型

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

x坐标的边界,指定为一个单元格数组的向量。每个的长度x可以变化,但一定要匹配相应的长度y向量。

非类型的数字输入坐标自动转换为类型

数据类型:细胞

y坐标的边界,指定为一个单元格数组的向量。每个的长度y可以变化,但一定要匹配相应的长度x向量。

非类型的数字输入坐标自动转换为类型

数据类型:细胞

名称-值对参数

例子:pgon = polyhape (P,'SolidBoundaryOrientation','ccw')

的可选逗号分隔对名称,值参数。名字参数名称和价值对应的值。名字必须出现在单引号内(' ')。您可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

全部展开

边界方向,指定为逗号分隔的对,由“SolidBoundaryOrientation”其中一个价值观是:

  • “汽车”—根据边界嵌套自动确定边界类型。

  • “连续波”-将顺时针顶点方向作为固体边界。

  • “公约”-将逆时针方向的顶点作为固体边界。

当其他软件使用特定约定生成多边形数据时,通常为一致性目的指定此参数。

顶点改变,指定为由逗号分隔的对组成“简化”和以下其中之一:

  • 真正的-改变多边形顶点,以产生一个良好定义的多边形时,输入顶点产生交点或不适当的嵌套。

  • -不要改变输入顶点,不管交集或不恰当的嵌套。使用定义不清的多边形进行计算可能会导致不准确或意外的结果。

数据类型:逻辑

属性

全部展开

多边形的二维顶点,指定为2列矩阵。顶点矩阵包含多边形每个边界的顶点。值分隔每个边界的顶点集。

数据类型:

此属性是只读的。

组成多边形的区域数,指定为标量整数。

数据类型:

此属性是只读的。

多边形中的孔数,指定为标量整数。

数据类型:

对象的功能

addboundary 添加多相边界
rmboundary 去除多相边界
rmholes 去除多晶体上的孔
rmslivers 移除多相边界异常值
简化 简化多相边界
边界 多形体边界的顶点坐标
isequal 确定多相对象是否相等
ishole 确定多相边界是否为空穴
isinterior 多形体内的查询点
issimplified 确定多形性是否定义良好
numboundaries 多相边界数
numsides 多相面数
区域 多晶体面积
boundingbox 多形体的包围盒
重心 多晶体质心
convhull 多形体的凸包
周长 多晶体的周长
三角测量 满足polyshape
相交 多相物体的交叉
减去 两个多形体的区别
联盟 多义词的并集
xor 两个多相对象的异或
polybuffer 缓冲polyshape
旋转 旋转polyshape
规模 规模polyshape
翻译 翻译polyshape
将多晶体孔边界转换为多晶体对象数组
情节 情节polyshape
地区 多晶体的周长
sortboundaries 多义词边界排序
sortregions 多相区域排序

例子

全部展开

创建并绘制由四个点组成的多边形,并计算其面积、周长和质心坐标。

Pgon = polyhape ([0 0 1 3], [0 3 3 0]);情节(pgon)

A =面积(pgon)
A = 6
P =圆周(pgon)
P = 10.6056
[Cx Cy] =质心(pgon)
Cx = 1.0833
Cy = 1.2500

分析一个有交叉边界的多边形。

创建一个边界包含自交的多边形。默认情况下,多晶体函数将边界分割为两个不同的边界,以创建定义良好的多边形。

P = [0 0;1 1;1 0;0 1;0 0];pgon =多形体(P)
警告:多晶体具有重复的顶点、交叉点或其他不一致,可能产生不准确或意外的结果。已修改输入数据以创建定义良好的多形体。
pgon = multihape with properties: Vertices: [7x2 double] NumRegions: 2 NumHoles: 0

绘制多边形并计算其面积。

情节(pgon)

A =面积(pgon)
A = 0.5000

如果不简化原始的输入顶点,多边形的两个三角形区域的面积就会互相抵消。

pgon2 =多相(P,“简化”假)
pgon2 = multihape与属性:顶点:[4x2 double] NumRegions: 1 NumHoles: 0
A2 =面积(pgon2)
A2 = 0

分析具有嵌套边界的多边形。

创建一个有两个适当嵌套边界的多边形。polyshape将最外层边界定义为实体区域的外部边界。向内,下一个边界定义了一个洞的开始。

T = 0.05:0.5:2*pi;X1 = cost;Y1 = sint;X2 = 0.5*cos(t);Y2 = 0.5*sin(t);Pgon =多形体({x1,x2},{y1,y2})
pgon = multihape with properties:顶点:[27x2 double] NumRegions: 1 NumHoles: 1
情节(pgon)

使用addboundary函数创建第二个多边形,该多边形将第三个外部边界添加到pgon

X3 = 2*cos(t);Y3 = 2* sint;Pgon2 = addboundary(pgon,x3,y3)
pgon2 = polyhape with properties: Vertices: [41x2 double] NumRegions: 2 NumHoles: 1
情节(pgon2)

加上第三个,外部边界需要polyshape根据新的嵌套模式,重新组织实体和孔的边界。再一次。polyshape从表示固体区域开始的最外层边界开始,然后在孔和固体之间交替使用每个嵌套边界,向内工作。新的多边形现在有两个固体区域和一个孔。

另请参阅

|

在R2017b中引入

这个话题有用吗?