如何确定哪些矩形与给定矩形最大重叠?

时间:2019-05-15 10:26:16

标签: java android math

我正在寻找最大重叠矩形。

我尝试使用以下代码行,但是它返回的矩形与其他矩形是否重叠

public boolean isOverlapping(Rect r1, Rect r2) {
       if (r1.top < r2.top || r1.left > r2.left) {
           return false;
       }
       if (r1.width() < r2.width() || r1.height() > r2.height()) {
           return false;
       }
       return true;
   }

我希望输出结果是矩形3与给定矩形最重叠。没有列出或与给定矩形重叠的矩形数量。

1 个答案:

答案 0 :(得分:1)

一些伪代码可以帮助您前进:

for each rect in Rectangle list
  overlap = compuateOverlap(rect, givenRect)

换句话说:实际上计算两个矩形的重叠区域相对容易。只需这样做,比较结果,并找出最大值即可。

如果您需要更多有关如何计算重叠的指导,请参阅此answer以获取一些启发。

或者here,您甚至可以找到用于计算两个矩形的重叠面积的精确公式!