import android.graphics.Rect;
Rect r1 = Rect(10,10,20,20);
Rect r2 = Rect(20,20,30,30);
Rect.intersects(r1, r2); //returns FALSE
为什么?
在我的世界中,矩形应该在20,20
处相交答案 0 :(得分:3)
因为Rect.intersects(r1,r2)
会关注,
public static boolean intersects(Rect a, Rect b) {
return a.left < b.right && b.left < a.right
&& a.top < b.bottom && b.top < a.bottom;
}
正如@clark在评论中所描述的那样, - 认为边缘严格小于/大于,不等于
答案 1 :(得分:0)
这些坐标是矩形的边框。如果除了边界之外的两个矩形中至少有一个像素,则两个矩形相互交叉。
答案 2 :(得分:0)
添加@Jabbar Jigariyo
实际上并没有相交......
P.S。抱歉GnomePaint :(
如果你想在20,20
中交叉,请制作一个方法:
public static boolean intersects(Rect a, Rect b) {
return a.left <= b.right && b.left <= a.right
&& a.top <= b.bottom && b.top <= a.bottom;
}