我正在尝试实现一种方法,如果 矩形所覆盖的区域的某些部分也是另一个矩形的一部分,否则为false,否则使用x和y坐标以及宽度和高度。
伴随下面的代码,我已经初始化了变量x,y,width和height,它们是对象BoundingBox的属性
public boolean intersects(BoundingBox box) {
int boxx = getX();
int boxy = getY();
int boxw = getWidth();
int boxh = getHeight();
if ( box.getX()+ box.getWidth() < boxx || box.getY() + box.getHeight() < boxy || boxx+boxw < box.getX() || boxy + boxh < box.getY()) {
if (boxw*boxh <= box.getWidth()*box.getHeight()) {
return false;
}
else {
return true;
}
}
else {
return true;
}
}
当我尝试查看(x,y,width,height)=(20,0,1,20)的矩形是否与原始矩形相交时,我将其设置为(10,10,10,10 ),我希望看到结果为false,但实际输出为true?
答案 0 :(得分:0)
在您的for循环中使用它。
if (boxx > box.getX()+box.getWidth() || box.getX(0) > boxx) {
return false;
}
if (boxy < box.getY()+box.getHeight() || box.getY() < boxy+boxh) {
return false;
}
return true;