Rumah >Java >javaTutorial >Bagaimana untuk menyemak sama ada dua bulatan yang diberikan adalah tangen atau bersilang di Jawa?
Bulatan ialah bentuk tertutup yang dibentuk dengan mengesan titik yang bergerak di atas satah supaya jaraknya dari titik tertentu adalah malar. Dalam artikel ini, kami akan menyemak sama ada dua bulatan yang diberikan bersentuhan atau bersilang antara satu sama lain.
Kita akan mendapat dua bulatan dengan pusat 1 iaitu (x1, y1) dan pusat 2 iaitu (x2,y2) dengan jejari R1 dan R2. Kita perlu menyemak sama ada bulatan yang diberikan berlanggar dengan bulatan lain, jadi terdapat lima kemungkinan kes -
Bulatan 2 berada di dalam Bulatan 1
Bulatan 1 berada di dalam Bulatan 2
Bulatan 1 dan Bulatan 2 bersilang
Bulatan 1 dan Bulatan 2 saling menyentuh
Bulatan 1 dan Bulatan 2 tidak bertindih
Sekarang untuk menyemak keadaan di atas, kita akan mencari jarak antara pusat 1 dan pusat 2 dan namakannya "d".
Sekarang,
1. Jika d
2 Jika d
3 Jika d
4. Jika d == R1 + R2: Bulatan 1 dan Bulatan 2 bersentuhan antara satu sama lain
5. Jika tidak, Bulatan 1 dan Bulatan 2 tidak bertindih
"d" boleh didapati menggunakan formula -
$$mathrm{d:=:sqrt((x1:–:x2)^2:+:(y1:–:y2)^2}$$
Jom mulakan!
Input "d" yang diberikan ialah -
Pusat 1 = (9, 3), Pusat 2 = (11, 1), R1 = 5, R2 = 4.
Selepas mencari nilai "d", hasilnya akan menjadi -
Bulatan 1 dan Bulatan 2 bersilang
Input "d" yang diberikan ialah -
Pusat 1 = (5, 8), Pusat 2 = (9, 11), R1 = 20, R2 = 40.
Selepas mencari nilai "d", hasilnya akan menjadi -
Bulatan 1 berada di dalam Bulatan 2
Langkah-1 - Isytihar dan mulakan pembolehubah.
Langkah-2 - Cari jarak antara pusat 1 dan pusat 2 bulatan.
Langkah-3 - Semak lima syarat untuk jarak.
Langkah 4 - Cetak hasilnya.
Kami menyediakan penyelesaian dengan cara yang berbeza.
Dengan menggunakan input statik
Dengan menggunakan kaedah yang ditentukan pengguna
Mari kita lihat program dan outputnya satu persatu.
Dalam kaedah ini, nilai Jejari 1 dan Jejari 2, Pusat 1 dan Pusat 2 akan ditugaskan untuk mencari "d". Kemudian berdasarkan algoritma kita mengetahui sama ada garis itu menyentuh, bersilang atau terletak di luar bulatan.
public class Main { //main method public static void main(String[] args){ //declaring variables int x1 = 9, y1 = 3; int x2 = 11, y2 = 1; int r1 = 5, r2 = 4; //finding d using the formula double d = Math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2)); if (d <= r1 - r2) { //print if Circle 2 lie inside circle 1 System.out.println("Circle 2 lie inside circle 1"); } else if (d <= r2 - r1) { //print if Circle 1 lie inside 2 System.out.println("Circle 1 lie inside 2"); } else if (d < r1 + r2) { //print if Circle 1 and 2 intersect each other System.out.println("Circle 1 and 2 intersect each other"); } else if (d == r1 + r2) { //print if Circle 1 and 2 touch each other System.out.println("Circle 1 and 2 touch each other"); } else { //print if Circle 1 and 2 do not touch each other System.out.println("Circle 1 and 2 do not touch each other"); } } }
Circle 1 and 2 intersect each other
Dalam kaedah ini, nilai Jejari 1 dan Jejari 2, Pusat 1 dan Pusat 2 akan ditugaskan untuk mencari "d". Kemudian kaedah yang ditentukan pengguna dipanggil dengan melepasi nilai yang diberikan dan mengikut algoritma kita akan mendapati jika garis lurus menyentuh, bersilang atau terletak di luar bulatan.
public class Main { //main method public static void main(String[] args){ //declaring variables int x1 = 5, y1 = 8; int x2 = 9, y2 = 11; int r1 = 20, r2 = 40; //calling user defined method func(x1, y1, x2, y2, r1, r2); } //user defined method static void func(int x1, int y1, int x2, int y2, int r1, int r2){ //finding d using the formula double d = Math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2)); if (d <= r1 - r2) { //print if Circle 2 lie inside circle 1 System.out.println("Circle 2 lie inside circle 1"); } else if (d <= r2 - r1) { //print if Circle 1 lie inside 2 System.out.println("Circle 1 lie inside 2"); } else if (d < r1 + r2) { //print if Circle 1 and 2 intersect each other System.out.println("Circle 1 and 2 intersect each other"); } else if (d == r1 + r2) { //print if Circle 1 and 2 touch each other System.out.println("Circle 1 and 2 touch each other"); } else { //print if Circle 1 and 2 do not touch each other System.out.println("Circle 1 and 2 do not touch each other"); } } }
Circle 1 lie inside 2
Dalam artikel ini, kami meneroka cara yang berbeza untuk mencari sama ada dua bulatan yang diberikan bersentuhan atau bersilang antara satu sama lain menggunakan bahasa pengaturcaraan Java.
Atas ialah kandungan terperinci Bagaimana untuk menyemak sama ada dua bulatan yang diberikan adalah tangen atau bersilang di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!