检查一个矩形是否平分另一个矩形

Check if a rectangle bisects another rectangle

我在网格上有两个矩形,由 x、y、宽度和高度(均为整数)定义。

我想知道其中一个是否平分另一个。也就是说,不只是重叠,而是一直贯穿以创建三个矩形。

示例:

是否有相对省时的算法来做到这一点?

如果我们查看您问题中的第二个示例,我们可以找到以下条件来确定矩形 A 是否垂直平分矩形 B

xA <= xB && xA + widthA >= xB + widthB && yA > yB && yA + heightA < yB + heightB

同理,还有3种情况(横向的,反之亦然)。如果这些情况中的任何一个适用,你就有了二分法。