【发布时间】:2015-11-11 11:23:21
【问题描述】:
当我计算两个相互接触的形状之间的差异时(例如,矩形 A 在更大的矩形 B 中,矩形 A 上有一个孔)和一个剪辑形状(矩形 C),这两个接触的形状被合并,因为它们的共享相同的边缘,然后执行剪辑。
剪切时是否可以避免合并触摸形状?
这里是两个形状(绿色的A和红色的B)和一个剪辑(所以操作是:A&B -剪辑)之间的区别示例,它返回蓝色的形状:
我想要这两种形状,而不是蓝色矩形:
而交叉点会给出:
这会给我我想要的四种形状:
我知道我可以分别对每个形状执行操作,但恐怕成本会更高。
注意
这是 XOR 的结果:
【问题讨论】:
-
使用异或代替差分。
-
我在我的问题中忘记了一些东西,所以我编辑了它,现在应该更清楚了。 XOR 没有帮助......我认为唯一的解决方案是单独执行操作,这就是我现在所做的。
-
我已经在stackoverflow.com/questions/46235176/… 上发布了一个类似的问题你找到解决方案了吗?最后,我将处理超过 200 万个形状。我认为单独剪裁它们对性能没有好处。
-
我没有找到Clipper lib的解决方案,但我自己计算了操作,请参阅以下答案。
标签: polygons clipperlib