如何在 Java 中检查给定点是否在矩形内?


矩形是一个封闭的二维图形,具有 4 条边和 4 个角。对边长度相等且平行。所有 4 个内角都相等,每个角都为 90 度。它是一个四边形。

我们将在这个程序中看到两种方法。

  • 如果给出左下角和右上角点的值

  • 如果给出矩形的四个点

如果给出左下角和右上角点的值

则给定点的 x 坐标应位于矩形的 x 坐标内,并且给定点的 y 坐标应位于矩形的 y 坐标内。

如果给出矩形的四个点

然后找到矩形的面积,并检查它是否与由该点形成的四个三角形的面积相同。

在本文中,我们将了解如何使用 Java 编程语言检查点是否在矩形内。

向您展示一些实例

实例 1

假设左下角和右上角点的值为 (1, 1) 和 (9, 8)。

给定点为 (2, 3)

那么我们可以说给定点 (2, 3) 位于矩形内。

算法

算法 1

  • 步骤 1 - 获取左下角 (x1, y1) 和右上角 (x2, y2) 以及给定点值 (x, y),可以通过初始化或用户输入获取。

  • 步骤 2 - 如上所述,使用 if 条件并检查是否给出了左下角和右上角点的值,然后它应该满足 x > x1 和 x < x2 以及 y > y1 和 y < y2

  • 步骤 3 - 如果条件满足,则打印点位于矩形内,否则不位于矩形内。

算法 2

  • 步骤 1 - 获取矩形的四个点值,例如 A (x1, y1)、B (x2, y2)、C (x3, y3)、D (x4, y4) 和给定点值 P (x, y),可以通过初始化或用户输入获取。

  • 步骤 2 - 如上所述,如果给出了矩形的 4 个点,则找到矩形 ABCD 的面积和 4 个三角形的面积,即三角形 PAB 的面积、三角形 PBC 的面积、三角形 PCD 的面积、三角形 PAD 的面积。

  • 步骤 3 - 然后使用 if 条件并检查矩形的面积是否与 4 个三角形的面积相同。如果相同,则点位于矩形内,否则不位于矩形内。

多种方法

我们提供了不同方法的解决方案。

  • 如果给出左下角和右上角点的值

  • 如果给出矩形的四个点

让我们逐一查看程序及其输出。

方法 1:如果给出左下角和右上角点的值

在这种方法中,左下角、右上角点和一个点值将在程序中初始化。然后通过使用算法 1 检查点是否在矩形内。

示例

public class Main { //main method public static void main(String[] args) { //declared variables and initialized bottom-left corner coordinates int x1 = 1, y1 = 1; //declared variables and initialized top-right corner coordinates int x2 = 9, y2 = 8; //declared variables and initialized point value which needs to be checked int x = 2, y = 3; //calling the user defined method by passing all the point values as parameter if (FindPoint(x1, y1, x2, y2, x, y)) System.out.println("Yes given point lies inside rectangle"); else System.out.println("No given point does not lie inside rectangle"); } //method to check given point lies inside rectangle or not static boolean FindPoint(int x1, int y1, int x2, int y2, int x, int y) { //if it satisfies the condition if (x > x1 && x < x2 && y > y1 && y < y2) { //then return true return true; } //else return false return false; } }

输出

Yes given point lies inside rectangle

方法 2:如果给出矩形的四个点

在这种方法中,矩形的四个点将在程序中初始化。然后通过使用算法 2 检查点是否在矩形内。

示例

public class Main { //main method public static void main (String[] args) { //declared the variables and initialized the point values int x1=0; int y1=0; int x2=10; int y2=0; int x3=10; int y3=10; int x4=0; int y4=10; //given point to be checked int x=13; int y=13; //calling the user defined method to check if point lies inside rectangle if (checkPoint(x1,y1,x2,y2,x3,y3,x4,y4,x,y)) System.out.print("Yes given point lies inside rectangle"); else System.out.print("No given point does not lie inside rectangle"); } //user defined method to find area of triangle static float triangleArea(int x1, int y1, int x2, int y2, int x3, int y3) { return (float)Math.abs((x1 * (y2 - y3) + x2 * (y3 - y1) + x3 * (y1 - y2)) / 2.0); } //user defined method to check whether point lies inside rectangle or not static boolean checkPoint(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4, int x, int y) { //area of rectangle ABCD float ABCD = (x1*(y2-y3) + x2*(y3-y1) + x3*(y1-y2))/2 + (x1*(y4-y3) + x4*(y3-y1) + x3*(y1-y4))/2; //find area of triangle PAB float PAB = triangleArea(x, y, x1, y1, x2, y2); //find area of triangle PBC float PBC = triangleArea(x, y, x2, y2, x3, y3); //find area of triangle PCD float PCD = triangleArea(x, y, x3, y3, x4, y4); // find area of triangle PAD float PAD = triangleArea(x, y, x1, y1, x4, y4); //check if area of rectangle is //equal to areas formed by four triangles if(ABCD == PAB + PBC + PCD + PAD) //then return true return true; else //else return false return false; } }

输出

No given point does not lie inside rectangle

在本文中,我们探讨了如何通过使用不同的方法来检查点是否在 Java 中的矩形内。

更新于: 2022 年 11 月 17 日

3K+ 浏览量

启动您的 职业生涯

通过完成课程获得认证

开始
广告