typedef struct{intleft;//leftmost: 最左
inttop;//topmost: 最上
intright;//rightmost: 最右
intbottom;//bottommost: 最下//其实两个点的组合,表达的是边界的概念//分别为://左边界,右边界//上边界,下边界
} Rect;bool isRectOverlap(const RECT& r1, const RECT&r2)
{return !( ((r1.right < r2.left) || (r1.bottom > r2.top)) ||((r2.right< r1.left) || (r2.bottom >r1.top))
)
}
两矩形相交”的对立事件(“两矩形不相交”比较容易表达(包含的情况数较少),最后对对立事件取非即可:
比如两矩形分别为r1和r2:
则两者不相交的情况为:r1在r2的左侧或上侧(同理,r2在r1的左侧或上侧),这里就要用到C结构体提供的界的概念了,也即r1的最右在r2最左的左侧,r1的最小在r2的最上的上侧。
((r1.right < r2.left) || (r1.bottom > r2.top))
((r2.right < r1.left) || (r2.bottom > r1.top))
不妨我们再对解决本题的思