检查一个矩形是否将另一个矩形一分为二

时间:2018-11-17 12:52:22

标签: algorithm shapes

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

我想告诉他们其中一个是否平分。也就是说,不仅要重叠,而且要一直贯穿以创建三个矩形。

示例: Overlap vsbisect

有相对省时的算法吗?

1 个答案:

答案 0 :(得分:2)

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

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

类似地,还有另外三种情况(水平的和反之亦然)。如果这些情况中有任何一种适用,则您有两等分。