polyshape
二维多边形
描述
的polyshape
函数创建一个由二维顶点定义的多边形,并返回一个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 = polyhape属性:顶点:[4×2 double] NumRegions: 1 NumHoles: 0
> >的情节(pgon)
创建
当创建一个polyshape
对象,则输入顶点应定义一个或多个无交集且嵌套正确的多边形边界。否则,polyshape
函数根据需要自动更改输入顶点,以创建定义良好的多边形。
如果你想创建一个正多边形,你也可以使用nsidedpoly
函数。nsidedpoly
允许您可选地指定参数,例如多边形的中心点和边长。
语法
描述
pgon = polyshape ()
创建一个空polyshape
对象。
输入参数
x
- - - - - -x坐标
向量
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
- - - - - -y坐标
向量
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
P
- - - - - -二维顶点
第二列的矩阵
多边形的二维顶点,指定为2列矩阵。的第一列P
包含了x顶点的-坐标,第二列包含y坐标。P
必须至少有3行。
您可以通过放置一个南
之间的边界。例如,Pgon = polyhape ([10 0;0 0;0 1;南南;1 - 5;5 5;5 (1)
创建一个polyshape
由两个实心三角形组成。
非类型的数字输入坐标双
是否自动转换为类型双
.
数据类型:双
|单
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
X
- - - - - -x坐标
向量的单元格数组
x坐标的米边界,指定为向量的单元格数组。每个向量的长度可以不同,但必须与对应向量的长度匹配y向量。
非类型的数字输入坐标双
是否自动转换为类型双
.
数据类型:细胞
Y
- - - - - -y坐标
向量的单元格数组
y坐标的米边界,指定为向量的单元格数组。每个向量的长度可以不同,但必须与对应向量的长度匹配y向量。
非类型的数字输入坐标双
是否自动转换为类型双
.
数据类型:细胞
指定可选参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。
在R2021a之前,名称和值之间用逗号隔开,并括起来的名字
在报价。
例子:pgon = polyshape (P“SolidBoundaryOrientation”“公约”)
SolidBoundaryOrientation
- - - - - -边界方向
“汽车”
(默认)|“连续波”
|“公约”
边界方向,指定为逗号分隔的对,由“SolidBoundaryOrientation”
其中一个价值观是:
“汽车”
—根据边界嵌套自动确定边界类型。“连续波”
-将顺时针顶点方向视为固体边界。“公约”
-将逆时针的顶点方向作为实体边界。
当其他软件使用特定约定生成多边形数据时,通常为一致性目的指定此参数。
简化
- - - - - -顶点变更
真正的
(默认)|假
顶点变化,指定为逗号分隔的对,由“简化”
和以下其中之一:
真正的
-当输入顶点产生交集或不恰当的嵌套时,更改多边形顶点以生成定义良好的多边形。假
-不要改变输入顶点,无论交叉点或不当嵌套。使用定义不明确的多边形进行计算可能会导致不准确或意外的结果。
数据类型:逻辑
KeepCollinearPoints
- - - - - -共线点
假
(默认)|真正的
共线顶点,指定为逗号分隔的对,由“KeepCollinearPoints”
和以下其中之一:
假
-删除共线点时,创建polyshape
这样它就包含了定义边界所需的最少顶点。真正的
-保持所有共线点作为顶点时,创建polyshape
.
在创建一个polyshape
的价值。“KeepCollinearPoints”
在使用addboundary
或简化
对象的功能。
数据类型:逻辑
属性
顶点
- - - - - -二维顶点
第二列的矩阵
多边形的二维顶点,指定为2列矩阵。顶点矩阵包含多边形每个边界的顶点。南
值分隔每个边界的顶点集。
数据类型:双
NumRegions
- - - - - -数量的地区
标量整数
此属性是只读的。
组成多边形的区域数,指定为标量整数。区域是由外边界所包围的区域,该区域可以包含完全位于外边界内部的孔洞边界。
数据类型:双
NumHoles
- - - - - -孔的数量
标量整数
此属性是只读的。
多边形中的孔数,指定为标量整数。
数据类型:双
对象的功能
修改Polyshape
addboundary |
添加polyshape 边界 |
polybuffer |
在点、线或polyshape 对象 |
rmboundary |
删除polyshape 边界 |
rmholes |
删除洞polyshape |
rmslivers |
删除polyshape 边界离群值 |
旋转 |
旋转polyshape |
规模 |
规模polyshape |
简化 |
简化polyshape 边界 |
sortboundaries |
排序polyshape 边界 |
sortregions |
排序polyshape 地区 |
翻译 |
翻译polyshape |
查询和可视化
边界 |
顶点的坐标polyshape 边界 |
孔 |
转换polyshape 孔边界数组polyshape 对象 |
ishole |
确定polyshape 边界是一个洞 |
isinterior |
查询点内polyshape |
issimplified |
确定polyshape 是明确的 |
nearestvertex |
查询最近的polyshape 顶点 |
numboundaries |
的数量polyshape 边界 |
numsides |
的数量polyshape 国 |
重叠 |
确定是否polyshape 对象重叠 |
情节 |
情节polyshape |
地区 |
访问polyshape 地区 |
几何量
区域 |
面积polyshape |
boundingbox |
边界框的polyshape |
重心 |
重心的polyshape |
convhull |
凸包的polyshape |
周长 |
的周长polyshape |
三角测量 |
由三角形组成的polyshape |
turningdist |
计算转弯距离polyshape 对象 |
例子
简单的四边形
创建并绘制一个由四个点组成的多边形,并计算其面积、周长和质心坐标。
Pgon = polyhape ([0 0 1 3], [0 3 3 0]);情节(pgon)
=区域(pgon)
= 6
P =周长(pgon)
P = 10.6056
[Cx Cy] =质心(pgon)
残雪= 1.0833
Cy = 1.2500
领结面积
分析一个边界相交的多边形。
创建一个边界包含自交的多边形。默认情况下,polyshape
函数将边界分割为两个不同的边界,以创建定义良好的多边形。
P = [0 0;1 1;1 0;0 1;0 0];pgon = polyshape (P)
警告:多面体有重复顶点、交叉或其他可能产生不准确或意外结果的不一致。输入数据已被修改以创建定义良好的多面体。
pgon =多面体属性:顶点:[7x2 double] NumRegions: 2 NumHoles: 0
绘制多边形并计算其面积。
情节(pgon)
=区域(pgon)
一个= 0.5000
如果不简化原始的输入顶点,多边形的两个三角形区域的面积就会相互抵消。
pgon2 = polyshape (P,“简化”假)
pgon2 =多面体属性:顶点:[4x2 double] NumRegions: 1 NumHoles: 0
A2 =区域(pgon2)
A2 = 0
多边形与孔
分析带有嵌套边界的多边形。
创建一个带有两个适当嵌套边界的多边形。polyshape
将最外层边界定义为实体区域的外部边界。向内工作,下一个边界定义了一个洞的开始。
t = 0.05:0.5:2 *π;x1 = cos (t);日元=罪(t);x2 = 0.5 * cos (t);y2 = 0.5 * sin (t);pgon = polyshape ({x1, x2}, {y1, y2})
pgon = polyhape属性:顶点:[27x2 double] NumRegions: 1 NumHoles: 1
情节(pgon)
使用addboundary
函数创建第二个多边形,向其添加第三个外边界pgon
.
x3 = 2 * cos (t);y3 = 2 * sin (t);pgon2 = addboundary (pgon x3, y3)
pgon2 =多面体属性:顶点:[41x2 double] NumRegions: 2 NumHoles: 1
情节(pgon2)
增加第三个,外部边界需要polyshape
根据新的嵌套模式重新组织实体和孔的边界。再一次,polyshape
从表示固体区域开始的最外层边界开始,然后在每个嵌套边界的孔和固体之间交替,向内工作。新的多边形现在有两个固体区域和一个孔。
版本历史
介绍了R2017b
另请参阅
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。