Das Wort „Polygon“ kommt vom griechischen „Poly“ für „viele“ und „gon“ für „Winkel“. Ein Polygon ist eine zweidimensionale geschlossene ebene Form, die durch drei oder mehr gerade Linien verbunden ist. Zum Beispiel Dreieck, Viereck, Sechseck usw.
Obwohl es in diesem Artikel viele Möglichkeiten gibt, die Fläche eines Polygons zu ermitteln, verwenden wir zu diesem Zweck den Slicker-Algorithmus.
Es gibt zwei Tatsachen, die Sie wissen müssen: Erstens sind Punkte, die nach oben in y-Richtung zeigen, immer positiv. Zweitens zeigt die y-Richtung laut Computersystem nach unten und ist immer positiv. Dieser Algorithmus bietet eine effiziente Lösung, indem er die Scheitelpunkte gegen den Uhrzeigersinn unter Verwendung positiver y-unten-Koordinaten auflistet. Dadurch werden diese beiden Tatsachen aufgehoben und eine positive Zone geschaffen.
Lassen Sie uns nun ein Java-Programm besprechen, das den Slicker-Algorithmus implementiert.
Schritt 1 - Erstellen Sie eine Klasse „Slicker“ und ihre beiden inneren Klassen „Coordinates“ und „Poly“.
Schritt 2 – Deklarieren und initialisieren Sie die Konstante „MAXIMUM“, um die Anzahl der Seiten des Polygons zu begrenzen.
Schritt 3 – Erstellen Sie ein Array von Objekten der Klasse „Coordinates“ innerhalb der inneren Klasse „Poly“. Erstellen Sie dann einen Konstruktor der Klasse „Poly“, um die Koordinaten in diesem Objektarray zu speichern.
Schritt 4 - Definieren Sie die Methode „calcAr“ und den Parameter „cr“ weiter. Bei dieser Methode erstellen wir eine for-Schleife, die die Anzahl der Seiten des Polygons ermittelt und die Fläche berechnet.
Schritt 5 - Erstellen Sie nun in der Hauptmethode ein Objekt „cr“ der Klasse „Poly“. Anschließend erhalten wir vom Benutzer die Anzahl der Seiten und die Koordinaten des Polygons.
Schritt 6 – Abschließend rufen wir die Methode „calcAr“ auf und prüfen mithilfe eines if-else-Blocks, ob der Bereich positiv oder negativ ist. Wenn positiv, wird die „if“-Blockanweisung ausgeführt, andernfalls wird der else-Block ausgeführt.
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
Keine ebene Form kann als Polygon betrachtet werden, beispielsweise ein Kreis, obwohl es sich um eine geschlossene ebene Form ohne Seiten handelt. Wir können es also nicht als Polygon bezeichnen. In diesem Artikel haben wir ein Java-Programm erstellt, um die Fläche eines Polygons mithilfe des Slicker-Algorithmus zu berechnen.
Das obige ist der detaillierte Inhalt vonVerwenden eines effizienteren Algorithmus zur Berechnung der Fläche eines Polygons in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!