好的,所以我正在为一个 Java 类做作业,作业的一部分是查明一个点是否在矩形的尺寸范围内。所以我创建了这段代码:
public boolean contains(Point p) {
return (this.getLocation().getX() < p.getX() && this.getLocation().getY() < p.getY() &&
this.getLocation().getX() + this.getWidth() > p.getX() &&
this.getLocation().getY() + this.getHeight() > p.getY());
}
我还创建了一个 Point
类,这就是为什么我需要一个 Point p
参数。为了测试这个 boolean
我在主类中创建了一个简单的 if
语句:
//check if one rectangle's point is inside another
if (rectangle.contains(rectangle2.getLocation()))
System.out.println("the point is in the rectangle");
点的位置是(6,7)。矩形 1 的点、宽和高分别为 (4,5)、9 和 3。我知道这个点在第一个矩形内,但是 println
语句没有显示,这意味着我创建的 boolean
一定有问题,但我没有看到一个错误,也许我的头很模糊,但有人可以指出我这里出了什么问题吗?
附言这都是控制台工作,我不处理一些 GUI 或图形编程。
最佳答案
AWT Rectangle 已经有了contains
方法。 ( link )
任务似乎是关于您是否了解命名空间如何冲突。例如,如果你很懒惰(这是程序员最受钦佩的品质之一),那么你可以这样写:
public static class Rectangle {
java.awt.Rectangle _r;
public Rectangle(int x, int y) {
this._r = new java.awt.Rectangle(x, y);
}
public boolean contains(Point p) {
return this._r.contains(p);
}
}
您通常不想重新实现功能或扩展类。
关于java - 检查一个点是否在指定的矩形内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5345031/