Rumah > Java > javaTutorial > teks badan

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

WBOY
Lepaskan: 2023-08-27 14:21:03
ke hadapan
736 orang telah melayarinya

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");
      }
   }
} 
Salin selepas log masuk

Output

Circle 1 and 2 intersect each other
Salin selepas log masuk

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");
      }
   }
} 
Salin selepas log masuk

Output

Circle 1 lie inside 2
Salin selepas log masuk

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!

Label berkaitan:
sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!