我怎么知道两个矩形相交的位置?

How can I know where two rectangles intersected?

我的 android 项目中有 2 个矩形交集(一个比另一个大)有问题。我使用了 Rect.intersects(rect1,rect2) 方法,它工作正常但我应该知道它相交的地方。比如rect1.right和rect2.left相交等等,有什么办法可以解决这个问题吗?Example

我写过类似的东西来检测顶部或底部。但它给了我 2 或 5 个像素的错误。

if (Rect.intersects(rect2,rect1)){
    //rect1 is smaller one
   if (rect1.exactCenterY()<rect2.exactCenterY() - rect2.height()/2||
      rect1.exactCenterY()>rect.exactCenterY() + rect2.height()/2){
      //It is top or bottom
         doSomething();
   }else{
         doSomething();
   }
}

希望大家多多指教或者其他解决方法

如果您使用的是矩形 class:

    int x = (int) rect1.intersection(rect2).getX();
    int y = (int) rect1.intersection(rect2).getY();

方法交集returns交集矩形。读出那个矩形。希望这有帮助。

找到了!感谢您的建议。但重要的是你还应该处理矩形角的交集。

if(rect2.setIntersects(rect2,rect1)){
    if(rect2.left!=rect1.left){
    //do something
    }else if(rect2.right!=rect1.right){
    //do something
    }// and so on
}