java - 检查一个点是否在指定的矩形内

标签 java geometry

好的,所以我正在为一个 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/

相关文章:

java - 如何使用 Java 在 Windows 上获取卷 ID?

c# - 如果可以在源代码控制提交、 check out 、差异等之前和之后自动格式化代码,公司真的需要标准代码风格吗?

javascript - 查找落在特定区域内的二维数据点

algorithm - 估计物体围绕三个任意轴的倾斜角

c++ - glm的orientAngle()函数中的 "reference vector"是什么?

java - 为 Java 应用程序构建交互式 shell 的库

java - 在 Swing 应用程序中使用方法

java - 如何组织我的 Maven 项目

javascript - 使用javascript使用经度和纬度计算多边形的面积

mysql - 在 phpMyAdmin 中导入带有多边形数据的 CSV