Rumah  >  Artikel  >  Java  >  Menggunakan algoritma yang lebih cekap untuk mengira luas poligon di Jawa

Menggunakan algoritma yang lebih cekap untuk mengira luas poligon di Jawa

PHPz
PHPzke hadapan
2023-08-27 21:57:061421semak imbas

Menggunakan algoritma yang lebih cekap untuk mengira luas poligon di Jawa

Perkataan "poligon" berasal daripada bahasa Yunani "Poly" bermaksud "banyak" dan "gon" bermaksud "sudut". Poligon ialah bentuk satah tertutup dua dimensi yang disambungkan oleh tiga atau lebih garis lurus. Contohnya segi tiga, segi empat, heksagon, dll.

Walaupun terdapat banyak cara untuk mencari luas poligon dalam artikel ini, kami akan menggunakan algoritma slicker untuk tujuan ini.

Algoritma yang lebih fleksibel untuk mencari luas poligon

Algoritma Slicker

Ada dua fakta yang anda mesti tahu Pertama, mengikut konvensyen matematik, mata dalam arah y ke atas sentiasa positif. Kedua, mengikut sistem komputer, arah y menghala ke bawah dan sentiasa positif. Algoritma ini menyediakan penyelesaian yang cekap dengan menyenaraikan bucu lawan jam menggunakan koordinat y-bawah positif. Ia akan membatalkan kedua-dua fakta ini, mewujudkan zon positif.

Sekarang mari kita bincangkan program java yang melaksanakan algoritma slicker.

Algoritma

  • Langkah 1 - Buat kelas "Slicker" dan dua kelas dalamannya "Koordinat" dan "Poly".

  • Langkah 2 - Isytihar dan mulakan pemalar "MAKSIMUM" untuk mengehadkan bilangan sisi poligon.

  • Langkah 3 - Buat tatasusunan objek kelas "Koordinat" di dalam kelas dalam "Poly". Kemudian, buat pembina kelas "Poly" untuk menyimpan koordinat dalam tatasusunan objek itu.

  • Langkah 4 - Takrifkan lagi kaedah "calcAr" dan parameter "cr". Dalam kaedah ini, kami akan mencipta gelung for yang akan berjalan ke bilangan sisi poligon dan mengira kawasan.

  • Langkah 5 - Sekarang dalam kaedah utama, buat objek "cr" kelas "Poly". Kami kemudiannya akan mendapat bilangan sisi dan koordinat poligon daripada pengguna.

  • Langkah 6 - Akhir sekali, kami akan memanggil kaedah "calcAr" dan semak sama ada kawasan itu positif atau negatif menggunakan blok if-else. Jika positif, pernyataan blok "jika" dilaksanakan, jika tidak blok lain dilaksanakan.

Contoh

import java.util.*;
public class Slicker {
   // to signify maximum number of sides of polygon
   static final int MAXIMUM = 50; 
   static class Coordinates {
      double c1, c2; 
      // declaring coordinates
   }
   static class Poly {
      // Array object of class Coordinates
      Coordinates cr[] = new Coordinates[MAXIMUM];
      int sides;
      Poly() 
      // constructor
      {
         // to accept input of coordinates
         for (int i = 0; i < MAXIMUM; i++)
         cr[i] = new Coordinates();
      }
   }
   // method to calculate area
   static double caclAr(Poly cr) {
      double res = 0;
      for (int i = 0; i < cr.sides; i++) {
         int j = (i + 1) % cr.sides;
         res += (cr.cr[i].c1 * cr.cr[j].c2)
          - (cr.cr[j].c1 * cr.cr[i].c2);
      }
      return res / 2;
   }
   static public void main(String[] args)
   {
      Poly cr = new Poly(); 
      // object of class 'Poly'
      // Object of scanner class for User inputs
      Scanner in = new Scanner(System.in);
      System.out.print("Enter total number of sides: ");
      cr.sides = in.nextInt();
      // to take coordinates from user
      System.out.println("Enter c1 and c2 coordinates: ");
      for (int i = 0; i < cr.sides; i++) {
         cr.cr[i].c1 = in.nextDouble();
         cr.cr[i].c2 = in.nextDouble();
      }
      // calling user defined method
      double caclAr = caclAr(cr);
      if (caclAr > 0) {
         System.out.print("The area of given Polygon: " + caclAr);
      } else {
         System.out.print("The area of given Polygon: " + (caclAr * -1));
      }
   }
} 

Output

Enter total number of sides: 4
Enter c1 and c2 coordinates: 
2 3
3 5
5 8
8 2
The area of given Polygon: 17.0

KESIMPULAN

Tiada bentuk satah boleh dianggap sebagai poligon, seperti bulatan, walaupun ia adalah bentuk satah tertutup tanpa sebarang sisi. Jadi kita tidak boleh memanggilnya poligon. Dalam artikel ini, kami telah mencipta program java untuk mengira luas poligon menggunakan algoritma slicker.

Atas ialah kandungan terperinci Menggunakan algoritma yang lebih cekap untuk mengira luas poligon 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