帮助中心帮助中心
本页翻译不是最新的。点击此处可查看最新英文版本。
polyshape 对象的并集
polyshape
polyout = union(poly1,poly2)
polyout = union(polyvec)
[polyout,shapeID,vertexID] = union(poly1,poly2)
[polyout,shapeID,vertexID] = union(polyvec)
___ = union(___,'KeepCollinearPoints',TF)
示例
polyout = union(poly1,poly2) 返回一个 polyshape 对象,它的区域是两个 polyshape 对象的并集。并集包含 poly1 和 poly2(二者必须具有兼容的数组大小)的合并区域。
polyout
poly1
poly2
polyout = union(polyvec) 返回一个 polyshape 对象,它的区域是向量 polyvec 中所有 polyshape 对象的几何并集。并集包含 polyvec 中所有 polyshape 对象的合并区域。
polyvec
[polyout,shapeID,vertexID] = union(poly1,poly2) 还会返回从 polyout 中的顶点到 poly1 和 poly2 中的顶点的顶点映射信息。仅当 poly1 和 poly2 是标量 polyshape 对象时,union 函数才支持此语法。
shapeID
vertexID
union
shapeID 元素标识 polyout 中对应的顶点是源于 poly1、poly2,还是因并集而产生的。vertexID 将 polyout 的顶点映射到 poly1、poly2 或并集的顶点。
[polyout,shapeID,vertexID] = union(polyvec) 返回从 polyvec 到 polyshape 对象向量 polyvec 的每个元素的顶点映射信息。
___ = union(___,'KeepCollinearPoints',TF) 指定在上述任一语法的基础上是保留还是删除 polyout 中的共线点。
TF
全部折叠
创建并绘制两个多边形。
poly1 = polyshape([0 0 1 1],[1 0 0 1]); poly2 = polyshape([0.75 1.25 1.25 0.75],[0.25 0.25 0.75 0.75]); plot(poly1) hold on plot(poly2)
figure
计算并绘制 poly1 和 poly2 的并集。
polyout = polyshape with properties: Vertices: [8x2 double] NumRegions: 1 NumHoles: 0
plot(polyout) xlim([-0.2 1.4]); ylim([-0.2 1.2]);
创建一个多边形向量并绘制每个多边形。
polyarray1 = polyshape([0 0 1 1],[1 0 0 1]); polyarray2 = polyshape([0.75 1.25 1.25 0.75],[0.25 0.25 0.75 0.75]); poly1 = [polyarray1 polyarray2]
poly1 = 1x2 polyshape array with properties: Vertices NumRegions NumHoles
plot(poly1(1)) hold on plot(poly1(2))
计算并绘制两个多边形的并集。
polyout = union(poly1)
创建两个多边形,计算并绘制其并集。显示并集的顶点坐标和相应的顶点映射信息。
poly1 = polyshape([0 0 1 1],[1 0 0 1]); poly2 = translate(poly1,[0.5 0]); [polyout,shapeID,vertexID] = union(poly1,poly2); plot(polyout) axis equal
[polyout.Vertices shapeID vertexID]
ans = 4×4 0 1.0000 1.0000 1.0000 1.5000 1.0000 2.0000 2.0000 1.5000 0 2.0000 3.0000 0 0 1.0000 4.0000
并集的第一个和最后一个顶点源于 poly1,因为 shapeID 中的对应值为 1。这些顶点分别是属性 poly1.Vertices 中的第一个和第四个顶点,因为 vertexID 中的对应值分别为 1 和 4。同样,并集的第二个和第三个顶点源于 poly2,它们分别是属性 poly2.Vertices 中的第二个和第三个顶点。
poly1.Vertices
poly2.Vertices
第一个输入 polyshape,指定为标量、向量、矩阵或多维数组。
第二个输入 polyshape,指定为标量、向量、矩阵或多维数组。
polyshape 向量。
false
true
共线顶点指示符,指定为 false 或 true:
false - 删除共线点,使输出 polyshape 包含定义边界所需的最少顶点。
true - 保留所有共线点作为顶点。
如果未指定 'KeepCollinearPoints' 参数,则根据创建输入 polyshape 对象时使用的值为该参数赋值:
'KeepCollinearPoints'
如果每个输入 polyshape 在创建时的值为 true,则输出 polyshape 的值设置为 true。
如果每个输入 polyshape 在创建时的值为 false,则输出 polyshape 的值设置为 false。
如果输入 polyshape 对象的值不匹配,则输出 polyshape 的值设置为 false。
数据类型: logical
logical
输出 polyshape,以标量、向量、矩阵或多维数组形式返回。
如果输入两个 polyshape 参数,则它们必须具有兼容的大小。例如,如果两个输入 polyshape 向量具有不同的长度 M 和 N,则它们必须有不同的方向(一个必须是行向量,一个必须是列向量)。polyout 则是 M×N 或 N×M,具体取决于每个输入向量的方向。有关兼容的数组大小的详细信息,请参阅基本运算的兼容数组大小。
如果您提供单个输入参数 polyvec,则 polyout 是一个标量 polyshape 对象。
形状 ID,以列向量形式返回,其各个元素表示并集中顶点的来源。
shapeID 的长度等于输出 polyshape 的 Vertices 属性中的行数。
Vertices
shapeID 的元素取决于输入参数的数量:
如果您提供两个输入参数 poly1 和 poly2,则它们必须是标量 polyshape 对象。如果输出 polyshape 的顶点是因并集而产生的,则 shapeID 中的对应元素的值为 0。当顶点源于 poly1 时,对应元素为 1,当顶点源于 poly2 时,对应元素为 2。
如果您提供一个输入参数 polyvec(polyshape 对象向量),则 shapeID 包含作为输出顶点来源的对应 polyvec 元素的索引。如果对应顶点是因并集而产生的,则元素的值为 0。
数据类型: double
double
顶点 ID,以列向量形式返回,其元素将输出 polyshape 中的顶点映射到来源的 polyshape 中的顶点。vertexID 的元素包含输入 polyshape 的 Vertices 属性中对应顶点的行号。如果输出 polyshape 的顶点是因并集而产生的,则对应元素为 0。
vertexID 的长度等于输出 polyshape 的 Vertices 属性中的行数。如果您提供两个输入 polyshape 对象,则 union 仅在它们都是标量时才支持此输出参数。
用法说明和限制:
必须启用动态内存分配才能进行代码生成。
名称-值对组必须为编译时常量。
backgroundPool
ThreadPool
在 R2017b 中推出
polyshape | xor | intersect
xor
intersect
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Contact your local office