检查Rectangle OverLap

时间:2016-11-13 23:49:04

标签: java overlap rectangles bluej

你好:)我目前正在开发一些关于在BlueJ上检查Java中两个矩形重叠的东西,而且我一直在检查互联网卡住了几个小时以获得任何帮助,但我还是找不到任何有助于我所处理的东西的东西。

目前,我正在编写一个名为“checkOverLap”的方法,看起来有点像这样:

private Boolean checkOverlap() {
    if (word2.getXPosition() >= word1.getXPosition() && word2.getXPosition() <= word1.getXPosition() + word1.getTextWidth() && (word2.getYPosition() >= word1.getYPosition() && word2.getYPosition() <= word1.getYPosition() + word1.getTextHeight())){
        return true;
    }

    else{
        return false;
    }

}
嗯,我对Java比较陌生,所以请原谅这种格式是多么糟糕&gt;。&gt;

它需要做的一般要点是,当矩形重叠时返回true :)否则,它将返回false。这是必需的原因,因为我希望矩形随机化它们在屏幕上的位置直到它们重叠。

我已经包含了返回X和Y坐标以及矩形的宽度和高度的访问器方法,这些是我在if语句中使用的比较,看看它们是否超过了一圈。

至于它有什么问题,我目前不确定,但我认为这与声明的逻辑有关,比如我没有比较正确的变量等,或者我添加了错误的运算符:/

任何建议或其他建议都会受到赞赏:)

1 个答案:

答案 0 :(得分:1)

你不必自己动手。请改用java.awt.Rectangle的交叉方法:

final Rectangle r1 = new Rectangle(50, 50, 10, 10);
final Rectangle r2 = new Rectangle(40, 40, 10, 10);
final Rectangle r3 = new Rectangle(40, 40, 15, 15);

System.out.println(r2.intersects(r1)); // false
System.out.println(r3.intersects(r1)); // true