Clipper:布尔运算类型

一.Clipper

Clipper支持四种裁剪类型,分别是交集、并集、非/差和异或。

enum ClipType { ctIntersection, ctUnion, ctDifference, ctXor }; 

假如现在把布尔操作比作弄饺子皮,一整大块面皮就是主体多边形,而一个小杯子就是裁剪多边形:
1.交集intersection
在这里插入图片描述

当我们用杯子压在面皮上用力往下压,就相当于把面皮裁剪了,得到的一小块杯口形状的面皮(裁剪结果),就相当于intersection的结果,即两多边形的共同区域。

2.并集ctUnion
在这里插入图片描述

上一步交集中,我们将一块完整的面皮分成了两部分,一部分是带有窟窿的一片面皮,另一部分是杯口形状的一小块面皮。
如果这时候我们仍将大片面皮当做主体多边形,而小块面皮当做裁剪多边形。当我们把小块面皮的一部分区域与大块面皮重叠,再压一下,现在两块面皮就融合成了一块,即可看作并集操作。

3.非/差ctDifference
在这里插入图片描述

这一步和交集很像,不同的是,在交集操作中我们按压完后得到的是一小块杯口状面皮,而在ctDifference操作中,我们可以看作把那一小块面皮扔掉,得到的是带有窟窿的一大块面皮(裁剪结果)。

4.异或exclusive or
在这里插入图片描述

这一步其实也可以和并集ctUnion关联起来,在ctUnion中,我们把两块面皮重新变成了一块,而exclusive or操作在这里也会将面皮变成一块,不同的是,原本两块面皮重合的区域,将会被挖走

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值