【问题标题】:Checking Rectangle OverLap检查矩形重叠
【发布时间】:2016-11-13 23:49:04
【问题描述】:

你好 :) 我目前正在做一些事情,这取决于检查 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;
    }

}

Erm,我对 Java 比较陌生,所以请原谅它的格式有多可怕>.>

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

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

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

任何建议或类似的将不胜感激:)

【问题讨论】:

  • 检查每个班级的网页不要伤害

标签: java overlap rectangles bluej


【解决方案1】:

您不必自己做。改用 java.awt.Rectangle 的 intersects 方法:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-01
    • 1970-01-01
    • 2018-11-02
    相关资源
    最近更新 更多