Rumah  >  Artikel  >  Java  >  Bagaimana untuk menyemak sama ada dua bulatan yang diberikan adalah tangen atau bersilang di Jawa?

Bagaimana untuk menyemak sama ada dua bulatan yang diberikan adalah tangen atau bersilang di Jawa?

WBOY
WBOYke hadapan
2023-08-27 14:21:03710semak imbas

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!

Tunjukkan kepada anda beberapa contoh

Contoh 1

  • 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

Contoh 2

  • 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

Algoritma

  • 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.

Pelbagai kaedah

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.

Kaedah 1: Gunakan input statik

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.

Contoh

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");
      }
   }
} 

Output

Circle 1 and 2 intersect each other

Kaedah 2: Gunakan kaedah yang ditentukan pengguna

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.

Contoh

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");
      }
   }
} 

Output

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!

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