Rumah >Java >javaTutorial >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.
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.
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.
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)); } } }
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
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!