矩形多边形的布尔运算

Nai*_*ler 6 c++ algorithm geometry boolean

Avast那里的程序员!

我有以下问题:

我有两个重叠的矩形,如下图所示.

替代文字

我想弄清楚由点ABCDEF组成的多边形.

替代圣诞节描述:红色饼干切割器正在切掉一些黑色饼干.我想计算黑色饼干.

每个矩形是具有4个2d顶点的数据结构.

实现这一目标的最佳算法是什么?

jbl*_*som 5

这是一般2D多边形裁剪的特例.一个好的起点是Weiler-Atherton算法. 维基百科有一个摘要原始论文的链接.该算法似乎与您描述的数据结构非常匹配.

请注意,你最终可能会得到一个带孔的矩形(如果红色的那个完全在黑色的内部)或者甚至是两个矩形(例如,如果红色比黑色更高,更瘦).如果您确定黑色内部只有红色矩形的一个角,那么解决方案应该更加简单.