我正在寻找一种简单的方法来计算两个矩形之间的差异。具体指的是所有属于其中一个矩形但不属于另一个矩形的点(因此就像XOR)。在这种情况下,矩形是轴对齐的,因此只会有直角。我相信差异区域可以表示为0-4个矩形(如果两个矩形相同,则为0;如果只有一个边缘不同,则为1;在一般情况下为4),我希望将差异区域作为矩形列表获取。您也可以将其视为在移动/调整实心矩形时必须更新的屏幕区域。例如:将矩形“a”的宽度加倍 - 我想要添加的区域(R)。
+----+----+
| a | R |
| | |
+----+----+
相交的矩形(a和b)- 我想要在矩形(其他分区也可能)中给定由T、L、R和B确定的区域的面积,但不包括X:
+------------+ a
| T |
|·····+------+-----+ b
| L | X | R |
| | | |
+-----+------+·····|
| B |
+------------+
我更倾向于使用Python的解决方案/库,但任何稳健的算法都会有所帮助。