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

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

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

我们将会给定一个正方形,它有四个点,即A,B,C,D,如图所示 –

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

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

方法1:通过使用用户定义的方法

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

示例

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编程语言探讨了不同的方法,以检查一条线是否与一个圆相接触、相交或位于圆外。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程