Rumah >Java >javaTutorial >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!
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 bagiAndaikan 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
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
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.
Kami menyediakan penyelesaian dengan cara yang berbeza.
melalui input statik
Dengan menggunakan kaedah yang ditentukan pengguna
Mari kita lihat program dan outputnya satu persatu.
Dalam kaedah ini, mula-mula hantar 3 mata kepada ungkapan untuk menyemak keadaan linear, arah jam dan lawan jam. Kemudian cetak hasilnya ke output.
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"); } } }
The given 3 points form: Clockwise
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.
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; } }
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!