【发布时间】:2017-09-30 16:04:24
【问题描述】:
我的 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();
}
}
希望大家给我一些建议或其他解决方法。
【问题讨论】:
-
你为什么使用中心而不是角落进行计算?
-
但如果有任何数学让您头疼,请使用
android.graphics.RegionAPI -
@cricket_007 认为这是最快的方法。我知道你的意思。
-
你只需要左上角和右下角,加上宽度和高度就可以形成一个矩形。此外,您正在对高度执行整数除法,这很可能会导致几个像素的舍入问题
标签: java android intersection rectangles