编程之美 扩展问题 之 如何处理二维空间的覆盖问题。

例如在windows 桌面上有若干窗口,如何判断某一窗口是否被其他窗口完全覆盖?

 希望读者看过在一维平面的解法:算法之美 2.19 区间重合判断

在二维平面:

解法:因为是窗口,都是些矩形。采用将矩形分别投影到X轴,Y轴上面。对每个方向分别计算包含关系。

如果两个方向,都包含。则该图像一定被其他窗口覆盖。

如果一个方向包含,就要具体分析另一个方向:半包含,不存在包含关系。

1 半包含:存在覆盖一部分。

2 不存在包含,单独模块。

如下图:通过把边投影到x轴,Y轴。

《编程之美 扩展问题 之 如何处理二维空间的覆盖问题。》

A和B,就存在投影相交的情况。但都被C覆盖了。

    原文作者:笨鸟明明
    原文地址: https://blog.csdn.net/xiaomayi2010/article/details/40560241
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞