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坐标。xy长度必须与至少三个元素相同。

例子

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

例子

pgon = polyshape (XY,在那里XY1 -的向量的单元格数组x- - -y-坐标,创建一个由边界。每一个向量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

多边形的二维顶点,指定为两列矩阵。第一列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, Name2 Value2

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

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

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

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

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

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

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

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

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

数据类型:逻辑

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

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

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

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

数据类型:逻辑

属性

全部展开

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

数据类型:

此属性是只读的。

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

数据类型:

此属性是只读的。

多边形上的洞数,指定为标量整数。

数据类型:

对象的功能

全部展开

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)

=区域(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)
警告:polyhape有重复的顶点、交叉或其他可能产生不准确或意外结果的不一致。已修改输入数据以创建定义良好的多晶体。
pgon = polyhape with properties: Vertices: [7x2 double] NumRegions: 2 NumHoles: 0

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

情节(pgon)

=区域(pgon)
一个= 0.5000

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

pgon2 = polyshape (P,“简化”假)
pgon2 = polyhape的属性:顶点:[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 with properties: Vertices: [27x2 double] NumRegions: 1 NumHoles: 1
情节(pgon)

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

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

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

另请参阅

|

介绍了R2017b