如何在Java中确认给定的四个点是否形成一个正方形?

2023年 8月 28日 32.0k 0

一个正方形是一个具有四条边长度相等的二维形状。正方形的对边是平行的,所有四个内角都是直角,对角线长度相等。在本文中,我们将检查如何确认给定的四个点是否形成一个正方形。

我们将得到一个带有四个点的正方形,即A、B、C、D,如图所示−

如何在Java中确认给定的四个点是否形成一个正方形?

我们需要从这些点来检查它们是否形成一个正方形。为了检查这一点,它应满足以下条件−

  • 点A和点C之间的距离,以及点B和点D之间的距离即“x”应该相等。

  • 点A和点B之间的距离,点B和点C之间的距离,点C和点D之间的距离,点D和点A之间的距离即“z”应该相等。

我们将使用公式找到两点之间的距离 -

$$mathrm{d=sqrt{(x_{2}-x_{1})^2(y_{2}-y_{1})^2}}$$

点1将是(x1,y1),点2将是(x2,y2)。

让我们开始吧!

展示给你一些实例

Instance-1

的中文翻译为:

实例-1

  • 给定四个输入点为 -

    • P1(3,7), P2(4,3), P3(7,8), P4(1,9)

  • 将其放入距离公式中并检查是否满足平方条件,结果将为 -

    • 给定四个点不构成一个正方形。

实例-2

  • 给定四个输入点为 -

    • P1(20,20), P2(20,10), P3(10,10), P4(10,20)

  • 将其放入距离公式中并检查是否满足平方条件,结果将为 -

    • 给定四个点形成一个正方形。

算法

  • 步骤-1 − 声明并初始化变量。

  • 步骤-2 − 找到圆的中心1和中心2之间的距离。

  • 第三步 - 检查五个距离条件。

  • 步骤-4 − 打印结果。

多种方法

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

  • 通过使用静态输入

  • 通过使用用户定义的方法

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

方法一:使用静态输入

在这种方法中,将分配点值。然后根据算法,我们将找出给定的四个点是否形成一个正方形。

Example

的中文翻译为:

示例

public class Main{

//main method
public static void main(String[] args){

//declaring variables
int x1=3, x2=4, x3=7, x4=1;
int y1=7, y2=3, y3=8, y4=9;
double d1, d2, d3, d4, d5, d6;

//applyinng logic
d1 = (x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1);
d2 = (x3 - x2) * (x3 - x2) + (y3 - y2) * (y3 - y2);
d3 = (x4 - x3) * (x4 - x3) + (y4 - y3) * (y4 - y3);
d4 = (x1 - x4) * (x1 - x4) + (y1 - y4) * (y1 - y4);
d5 = (x4 - x2) * (x4 - x2) + (y4 - y2) * (y4 - y2);
d6 = (x3 - x1) * (x3 - x1) + (y3 - y1) * (y3 - y1);

if (d1 == 0 || d2 == 0 || d3 == 0 || d4 == 0 || d5 == 0 || d6 == 0){
System.out.println("Given four points do not form a square");
}
else if (d1 == d2 && d2 == d3 && d3 == d4 && d5 == d6){

//prints if four points form square
System.out.println("Given four points form a square");
} else {

//prints if four points do not form square
System.out.println("Given four points do not form a square");
}

}
}

登录后复制

输出

Given four points do not form a square

登录后复制

方法二:使用用户定义的方法

在这种方法中,将分配点值。然后通过传递给定的值调用一个用户定义的方法,并根据算法判断给定的四个点是否形成一个正方形。

Example

的中文翻译为:

示例

public class Main{

//main method
public static void main(String[] args){

//creating objects of Point
Point p1 = new Point(20, 20);
Point p2 = new Point( 20, 10 );
Point p3 = new Point(10, 10 );
Point p4 = new Point( 10, 20 );

//calling user defined method
if(isSquare(p1, p2, p3, p4)==true){

//print if four points form a square
System.out.println("Given four points form a square");
}
else{

//print if points does not form a square
System.out.println("Given four points do not form a square");
}
}

// Declaring Point class
static class Point{
int x, y;
public Point(int x, int y){
this.x = x;
this.y = y;
}
};

//function to find square of distance from point 'p' to point 'q'
static int distSq(Point p, Point q){
return (p.x - q.x) * (p.x - q.x) + (p.y - q.y) * (p.y - q.y);
}

//user defined method
static boolean isSquare(Point p1, Point p2, Point p3, Point p4){
int d1 = distSq(p1, p2);
int d2 = distSq(p2, p3);
int d3 = distSq(p3, p4);
int d4 = distSq(p4, p1);

int d5 = distSq(p1, p3);
int d6 = distSq(p2, p4);
if (d1 == 0 || d2 == 0 || d3 == 0 || d4 == 0 || d5 == 0 || d6 == 0)
return false;

if (d1 == d2 && d2 == d3 && d3 == d4 && d5 == d6){

//it returns true if (p1, p2, p3, p4) form a square
return true;
}

//it returns false if (p1, p2, p3, p4) do not form a square
return false;
}
}

登录后复制

输出

Given four points form a square

登录后复制

在这篇文章中,我们使用Java编程语言探讨了不同的方法来检查一条线是否触碰、相交或位于圆外。

以上就是如何在Java中确认给定的四个点是否形成一个正方形?的详细内容,更多请关注每日运维网(www.mryunwei.com)其它相关文章!

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论