Rumah  >  Artikel  >  Java  >  Bagaimana untuk menyemak arah tiga mata yang dipesan di Jawa?

Bagaimana untuk menyemak arah tiga mata yang dipesan di Jawa?

PHPz
PHPzke hadapan
2023-09-14 14:21:04848semak imbas

Bagaimana untuk menyemak arah tiga mata yang dipesan di Jawa?

Dalam artikel ini, kita akan mencari arah 3 mata yang dipesan. Arah di sini merujuk kepada sama ada titik tertentu membentuk bentuk mengikut arah jam, lawan jam atau kolinear dalam ruang.

Dalam gambar di atas, a, b, c ialah tiga titik untuk menyemak arah bentuk dalam ruang. Kami mencari arah tiga titik yang diberikan dengan mengira cerun.

Kira cerun dan kira arah 3 mata yang dipesan.

Kecerunan segmen garisan

Kecerunan segmen garisan $(a,b):theta=kiri ( y_{b}-y_{a} kanan )/kiri ( x_{b} -x_{a}kanan )$

Cerun segmen garisan $(b,c)$: $phi=kiri ( y_{c} -y_{b}kanan )/(x_{c}-x_{b})$

Oleh itu, arah bergantung pada ungkapan berikut:

$$(y_{b}-y_{a})(x_{c}-x_{b})-(y_{c}-y_{b})(x_{b}-x_{a}) : Atau :(y2-y1)*(x3-x2)-(y3-y2)*(x2-x1)$$

Iaitu, sama ada nombor positif, nombor negatif, atau

  • Jika ungkapan itu sifar, maka θ = φ. Oleh itu arahnya adalah kolinear.

  • Jika ungkapan negatif, maka θ

  • Jika ungkapan itu positif, maka θ > Jadi arahnya mengikut arah jam.

Jom mulakan!

Tunjukkan kepada anda beberapa contoh

Terjemahan

Instance-1

ialah:

Instance-1

Andaikan 3 mata tersusun ialah (0,3), (4,2), (3,1)

Setelah menyemak arah 3 mata yang dipesan, keputusannya ialah:

3 mata yang diberi terbentuk: mengikut arah jam

Terjemahan bahasa Cina bagi

Instance-2

ialah:

Instance-2

Andaikan 3 mata tersusun ialah (0,3), (1,2), (9,5)

Selepas menyemak arah 3 mata yang dipesan, keputusannya ialah:

3 mata yang diberi terbentuk: lawan jam

Contoh 3

Andaikan 3 mata tersusun ialah (2,2), (3,3), (4,4)

Setelah menyemak arah 3 mata yang dipesan, keputusannya ialah:

Diberi bentuk 3 mata: linear

Algoritma

Langkah 1 - Isytihar 3 mata yang dipesan.

Langkah 2 - Hantar tiga mata yang diberikan kepada ungkapan iaitu (b.y - a.y) * (c.x - b.x) - (b.x - a.x) * (c.y - b.y).

Langkah 3 - Periksa keadaan linear, arah jam dan lawan jam.

Langkah 4 - Cetak hasilnya.

Pelbagai kaedah

Kami menyediakan penyelesaian dengan cara yang berbeza.

  • melalui input statik

  • Dengan menggunakan kaedah yang ditentukan pengguna

Mari kita lihat program dan outputnya satu persatu.

Kaedah 1: Gunakan input statik

Dalam kaedah ini, mula-mula hantar 3 mata kepada ungkapan untuk menyemak keadaan linear, arah jam dan lawan jam. Kemudian cetak hasilnya ke output.

Contoh

public class Main{
   //main method
   public static void main(String[] args){
      //Declaring variables
      int x1=0, y1=1;
      int x2=4, y2=3;
      int x3=3, y3=2;
      
      //expression to check for 3 ordered point
      int val = (y2 - y1) * (x3 - x2) - (x2 - x1) * (y3 - y2);
      
      // check for collinear
      if (val == 0){
         //printing collinear orientation
         System.out.print("The given 3 points form : Linear");
      }
      
      //check for clockwise
      else if(val > 0){
         
         //printing clockwise orientation
         System.out.print("The given 3 points form: Clockwise");
      } else {
        
         //printig counter clockwise orientation
         System.out.print("The given 3 points form: CounterClockwise");
      }
   }
}

Output

The given 3 points form: Clockwise

Kaedah 2: Gunakan kaedah yang ditentukan pengguna

Dalam kaedah ini, 3 mata pertama dihantar ke ungkapan melalui kaedah yang ditentukan pengguna untuk menyemak keadaan linear, mengikut arah jam dan lawan jam. Kemudian cetak hasilnya ke output.

Contoh

public class Main {
   public static void main(String[] args){
      Point a = new Point(2, 2);
      Point b = new Point(3, 3);
      Point c = new Point(4, 4);
      
      //calling user defined method
      int o = orientation(a, b, c);
     
      //check for Linear orientation
      if (o==0)	
      
         //printing Linear orientation
         System.out.print("The given 3 points form : Linear");
     
      //check for Clockwise orientation
      else if (o == 1)
     
         //printing clockwise orientation
         System.out.print("The given 3 points form : Clockwise");
      else
      
         //printing counter clockwise orientation
         System.out.print("The given 3 points form : CounterClockwise");
   }

   // user defined method
   public static int orientation(Point a, Point b,	Point c){
     
     //expression to check for 3 ordered point
      int val = (b.y - a.y) * (c.x - b.x) - (b.x - a.x) * (c.y - b.y);
      
      // check for collinear
      if (val == 0) return 0; 
      
      // check for clock or counterclock wise
      return (val > 0)? 1: 2;
   }
}
class Point{
   int x, y;
   Point(int x,int y){
      this.x=x;
      this.y=y;
   }
}

Output

The given 3 points form : Linear

Dalam artikel ini, kami meneroka cara menentukan arah dengan menyemak arah 3 titik tertib menggunakan bahasa pengaturcaraan Java.

Atas ialah kandungan terperinci Bagaimana untuk menyemak arah tiga mata yang dipesan di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam