Скажем, мы представляем прямоугольники парой координатных пар x, y: x1, y1 для верхнего левого угла и x2, y2 для нижнего левого угла. Предположим также, что координата y увеличивается вниз, а координата x увеличивается слева направо.
Теперь предположим, что прямоугольник, образованный объединением A и B (в соответствии с вашим определением объединения), равен U.
Итак,
U.x1=min(A.x1,B.x1), U.y1=min(A.y1,B.y2) --- top-left corner, take the lowest values
U.x2=max(A.x2,B.x2), U.y2=max(A.y2,B.y2) --- bottom-right corner, take the highest values
Теперь, когда у нас есть большой прямоугольник U, мы можем использовать его для вычисления меньшего правого и нижнего прямоугольников, которые нужно добавить в A (левый / верхний прямоугольник), чтобы сделать его U. Давайте назовем их Rt и Bot.
(На этот раз я предполагаю, что A - это верхний левый прямоугольник, если он не поменяется местами A и B. Также предполагается, что макет будет похож на макет вашей картинки. Если это не так, вы можете адаптировать это легко).
Rt.x1=A.x2, Rt.y1=A.y1
Rt.x2=A.x2, Rt.y2=B.y2
Bot.x1=A.x1, Bot.y1=A.y2
Bot.x2=A.x2, Bot.y2=B.y2