Estoy buscando una manera simple de calcular la diferencia entre dos rectángulos. Me refiero a todos los puntos que pertenecen a uno de los rectángulos, pero no a ambos (por lo que es como XOR).¿Diferencia (XOR) entre dos rectángulos, como rectángulos?
Los rectángulos están alineados con el eje en este caso, por lo que solo habrá ángulos rectos. Creo que la región de diferencia se puede expresar en 0-4 rectángulos (0 si ambos rectángulos son iguales, 1 si solo un borde es diferente, 4 en el caso general), y me gustaría obtener la región de diferencia como una lista de rectángulos.
También puede considerarlo como las áreas de la pantalla que deben actualizarse cuando se mueve/cambia el tamaño de un rectángulo sólido.
Ejemplos: Doblando el ancho del rectángulo "a" - Quiero la región agregada (R).
+----+----+
| a | R |
| | |
+----+----+
rectángulos de intersección (A y b) - Quiero que el área dada por T, L, R y B en rectángulos (otra partición posible), pero excluyendo X:
+------------+ a
| T |
|·····+------+-----+ b
| L | X | R |
| | | |
+-----+------+·····|
| B |
+------------+
que había prefiera una solución/biblioteca de Python, pero cualquier algoritmo robusto sería útil.