Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

addboundary

添加 polyshape 边界

说明

示例

polyout = addboundary(polyin,x,y) 返回一个 polyshape 对象,它由现有 polyshape 和一条额外的边界组成,此边界由向量 xy 中包含的 x 坐标和 y 坐标定义。

polyout = addboundary(polyin,P) 添加由 N×2 矩阵 P 中包含的坐标所定义的边界,其中 N 是顶点数。

polyout = addboundary(polyin,{x1,x2,...,xM},{y1,y2,...,yM}) 添加 M 个边界,由每个边界的 x 坐标组成的向量全部列在一个元胞数组中。由对应的 y 坐标组成的向量也全部列在一个元胞数组中。每个 xi 的长度必须与对应的 yi 相同,但边界之间的顶点数可以不同。

polyout = addboundary(___,Name,Value) 为上述任意语法指定向 polyshape 添加边界的其他参数。

示例

全部折叠

创建一个矩形,然后再创建一个由该矩形和一个三角形组成的多边形。

polyin = polyshape([0 0 1 1],[0 0.5 0.5 0])
polyin = 
  polyshape with properties:

      Vertices: [4x2 double]
    NumRegions: 1
      NumHoles: 0

plot(polyin)

Figure contains an axes object. The axes object contains an object of type polygon.

polyout = addboundary(polyin,[2 3 2.5],[2 2 3])
polyout = 
  polyshape with properties:

      Vertices: [8x2 double]
    NumRegions: 2
      NumHoles: 0

plot(polyout)

Figure contains an axes object. The axes object contains an object of type polygon.

输入参数

全部折叠

输入 polyshape,指定为标量。

数据类型: polyshape

边界顶点的 x 坐标,指定为向量。您可以通过在每个边界之间放置一个 NaN 来同时表示多个边界的坐标。例如,polyout = addboundary(polyin,[0 0 1 NaN 1 5 5],[1 0 0 NaN 5 5 1]) 返回由 polyin 和另外两个三角形组成的 polyshape 对象。

double 类型的数值输入顶点将自动转换为 double 类型。

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

边界顶点的 y 坐标,指定为向量。您可以通过在每个边界之间放置一个 NaN 来同时表示多个边界的坐标。例如,polyout = addboundary(polyin,[0 0 1 NaN 1 5 5],[1 0 0 NaN 5 5 1]) 返回由 polyin 和另外两个三角形组成的 polyshape 对象。

double 类型的数值输入顶点将自动转换为 double 类型。

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

边界顶点,指定为两列矩阵。P 的第一列包含顶点的 x 坐标,第二列包含顶点的 y 坐标。P 必须至少有 3 行。

您可以通过在每个边界之间放置一个 NaN 来同时表示多个边界的坐标。例如,polyout = addboundary(polyin,[1 0; 0 0; 0 1; NaN NaN; 1 5; 5 5; 5 1]) 返回由 polyin 和另外两个三角形组成的 polyshape 对象。

double 类型的数值输入顶点将自动转换为 double 类型。

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

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

double 类型的数值输入顶点将自动转换为 double 类型。

数据类型: cell

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

double 类型的数值输入顶点将自动转换为 double 类型。

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

名称-值参数

示例: polyout = addboundary(polyin,x,y,'SolidBoundaryOrientation','ccw')

将可选的参数对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参数名称,Value 是对应的值。名称-值参数必须出现在其他参数之后,但参数对组的顺序无关紧要。

在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name 引起来。

边界的方向,指定为以逗号分隔的对组,该对组由 'SolidBoundaryOrientation' 和下列值之一组成:

  • 'auto' - 自动选择顺时针或逆时针顶点方向作为实心边界。

  • 'cw' - 将顺时针顶点方向视为实心边界。

  • 'ccw' - 将逆时针顶点方向视为实心边界。

顶点方向对于大多数应用情形来说并不重要,它主要作为一种确定边界嵌套的算法工具。如果多边形数据是由其他软件按照某种特殊约定生成的,则通常会指定此参数以实现一致性和高效性目的。

顶点更改,指定为以逗号分隔的对组,该对组由 'Simplify' 和下列值之一组成:

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

  • false - 即使有交集或不正确嵌套,也不更改输入顶点。使用未明确定义的多边形进行计算可能会产生不准确或意想不到的结果。

数据类型: logical

共线顶点,指定为以逗号分隔的对组,该对组由 'KeepCollinearPoints' 和下列值之一组成:

  • false - 删除共线点,使输出 polyshape 包含定义边界所需的最少顶点。

  • true - 保留所有共线点作为顶点。

如果未指定 'KeepCollinearPoints',则其值将自动设置为在创建输入 polyshape 时使用的值。

数据类型: logical

扩展功能

版本历史记录

在 R2017b 中推出

另请参阅

| |