主要内容

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对象。

例子

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

例子

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

例子

pgon = polyshape (XY,在那里X而且Y1 -向量的单元格数组x- - -y-coordinates,创建一个由边界。每一个向量X必须与对应向量的长度相等Y,但顶点的数量可以在边界之间变化。

例子

pgon = polyshape (___名称,值用于创建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 = polyhape ([10 0;0 0;0 1;南南;1 - 5;5 5;5 (1)创建一个polyshape由两个实心三角形组成。

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

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

x坐标的边界,指定为向量的单元格数组。每个向量的长度可以不同,但必须与对应向量的长度匹配y向量。

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

数据类型:细胞

y坐标的边界,指定为向量的单元格数组。每个向量的长度可以不同,但必须与对应向量的长度匹配y向量。

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

数据类型:细胞

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。

在R2021a之前,名称和值之间用逗号隔开,并括起来的名字在报价。

例子:pgon = polyshape (P“SolidBoundaryOrientation”“公约”)

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

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

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

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

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

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

  • 真正的-当输入顶点产生交集或不恰当的嵌套时,更改多边形顶点以生成定义良好的多边形。

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

数据类型:逻辑

共线顶点,指定为逗号分隔的对,由“KeepCollinearPoints”和以下其中之一:

  • -删除共线点时,创建polyshape这样它就包含了定义边界所需的最少顶点。

  • 真正的-保持所有共线点作为顶点时,创建polyshape

在创建一个polyshape的价值。“KeepCollinearPoints”在使用addboundary简化对象的功能。

数据类型:逻辑

属性

全部展开

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

数据类型:

此属性是只读的。

组成多边形的区域数,指定为标量整数。区域是由外边界所包围的区域,该区域可以包含完全位于外边界内部的孔洞边界。

数据类型:

此属性是只读的。

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

数据类型:

对象的功能

全部展开

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对象
相交 十字路口的polyshape对象
减去 不同的两个polyshape对象
联盟 联盟polyshape对象
xor 两个的异或polyshape对象

例子

全部折叠

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

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

图中包含一个axes对象。坐标轴对象包含一个polygon类型的对象。

=区域(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)

图中包含一个axes对象。坐标轴对象包含一个polygon类型的对象。

=区域(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)

图中包含一个axes对象。坐标轴对象包含一个polygon类型的对象。

使用addboundary函数创建第二个多边形,向其添加第三个外边界pgon

x3 = 2 * cos (t);y3 = 2 * sin (t);pgon2 = addboundary (pgon x3, y3)
pgon2 =多面体属性:顶点:[41x2 double] NumRegions: 2 NumHoles: 1
情节(pgon2)

图中包含一个axes对象。坐标轴对象包含一个polygon类型的对象。

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

版本历史

介绍了R2017b

另请参阅

|

Baidu
map