首页 > 解决方案 > 如何确定哪些矩形与给定矩形有最大重叠?

问题描述

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

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

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 与给定矩形最重叠。不列出或重叠到给定矩形的矩形数量。

标签: javaandroidmath

解决方案


一些伪代码可以帮助您:

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

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

如果您需要更多指导如何计算重叠,请参阅此答案以获得一些灵感。

或者在这里,您甚至可以找到用于计算两个矩形重叠区域的精确公式!


推荐阅读