例如在windows 桌面上有若干窗口,如何判断某一窗口是否被其他窗口完全覆盖?
希望读者看过在一维平面的解法:算法之美 2.19 区间重合判断
在二维平面:
解法:因为是窗口,都是些矩形。采用将矩形分别投影到X轴,Y轴上面。对每个方向分别计算包含关系。
如果两个方向,都包含。则该图像一定被其他窗口覆盖。
如果一个方向包含,就要具体分析另一个方向:半包含,不存在包含关系。
1 半包含:存在覆盖一部分。
2 不存在包含,单独模块。
如下图:通过把边投影到x轴,Y轴。
A和B,就存在投影相交的情况。但都被C覆盖了。