xor
两个 polyshape
对象的异或
语法
说明
示例
异或
创建并绘制两个多边形。
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 = xor(poly1,poly2)
polyout = polyshape with properties: Vertices: [13x2 double] NumRegions: 2 NumHoles: 0
plot(polyout)
顶点映射
创建两个多边形,计算并绘制其异或集。显示异或集的顶点坐标和相应的顶点映射信息。
poly1 = polyshape([0 0 1 1],[1 0 0 1]); poly2 = translate(poly1,[0.5 0]); [polyout,shapeID,vertexID] = xor(poly1,poly2); plot(polyout)
[polyout.Vertices shapeID vertexID]
ans = 9×4
0 1.0000 1.0000 1.0000
0.5000 1.0000 2.0000 1.0000
0.5000 0 2.0000 4.0000
0 0 1.0000 4.0000
NaN NaN NaN NaN
1.0000 1.0000 1.0000 2.0000
1.5000 1.0000 2.0000 2.0000
1.5000 0 2.0000 3.0000
1.0000 0 1.0000 3.0000
异或集中有两条边界,由 Vertices
属性中的一行 NaN
值分隔。以数组中的第一条边界为例。异或集的第一个和最后一个顶点源于 poly1
,因为 shapeID
中的对应值为 1。这些顶点分别是属性 poly1.Vertices
中的第一个和第四个顶点,因为 vertexID
中的对应值分别为 1 和 4。同样,异或集的第二个和第三个顶点源于 poly2
,它们也分别是属性 poly2.Vertices
中的第一个和第四个顶点。
输入参数
poly1
— 第一个输入 polyshape
标量 | 向量 | 矩阵 | 多维数组
第一个输入 polyshape
,指定为标量、向量、矩阵或多维数组。
poly2
— 第二个输入 polyshape
标量 | 向量 | 矩阵 | 多维数组
第二个输入 polyshape
,指定为标量、向量、矩阵或多维数组。
TF
— 共线顶点指示符
false
| true
共线顶点指示符,指定为 false
或 true
:
false
- 删除共线点,使输出polyshape
包含定义边界所需的最少顶点。true
- 保留所有共线点作为顶点。
如果未指定 'KeepCollinearPoints'
参数,则根据创建输入 polyshape
对象时使用的值为该参数赋值:
如果每个输入
polyshape
在创建时的值为true
,则输出polyshape
的值设置为true
。如果每个输入
polyshape
在创建时的值为false
,则输出polyshape
的值设置为false
。如果输入
polyshape
对象的值不匹配,则输出polyshape
的值设置为false
。
数据类型: logical
输出参量
polyout
— 输出 polyshape
标量 | 向量 | 矩阵 | 多维数组
输出 polyshape
,以标量、向量、矩阵或多维数组形式返回。
两个输入 polyshape
参量必须具有兼容的大小。例如,如果两个输入 polyshape
向量具有不同的长度 M 和 N,则它们必须有不同的方向(一个必须是行向量,一个必须是列向量)。polyout
则是 M×N 或 N×M,具体取决于每个输入向量的方向。有关兼容的数组大小的详细信息,请参阅基本运算的兼容数组大小。
shapeID
— 形状 ID
列向量
形状 ID,以列向量形式返回,其各个元素表示异或集中顶点的来源。如果输出 polyshape
的顶点是因异或集而产生的,则 shapeID
中的对应元素的值为 0。当顶点源于 poly1
时,对应元素为 1,当顶点源于 poly2
时,对应元素为 2。
shapeID
的长度等于输出 polyshape
的 Vertices
属性中的行数。仅当输入 polyshape
对象是标量时,xor
函数才支持此输出参量。
数据类型: double
vertexID
— 顶点 ID
列向量
顶点 ID,以列向量形式返回,其元素将输出 polyshape
中的顶点映射到来源的 polyshape
中的顶点。vertexID
的元素包含输入 polyshape
的 Vertices
属性中对应顶点的行号。如果输出 polyshape
的顶点是因异或集而产生的,则对应元素为 0。
vertexID
的长度等于输出 polyshape
的 Vertices
属性中的行数。仅当输入 polyshape
对象是标量时,xor
函数才支持此输出参量。
数据类型: double
扩展功能
C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。
用法说明和限制:
必须启用动态内存分配才能进行代码生成。
名称-值对组必须为编译时常量。
版本历史记录
在 R2017b 中推出
MATLAB 命令
您点击的链接对应于以下 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:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)