Le mot « polygone » vient du grec « Poly » signifiant « plusieurs » et « gon » signifiant « angle ». Un polygone est une forme plane fermée bidimensionnelle reliée par trois lignes droites ou plus. Par exemple triangle, quadrilatère, hexagone, etc.
Bien qu'il existe de nombreuses façons de trouver l'aire d'un polygone dans cet article, nous utiliserons l'algorithme slicker à cette fin.
Il y a deux faits que vous devez savoir. Premièrement, selon la convention mathématique, les points pointant vers le haut dans la direction y sont toujours positifs. Deuxièmement, selon le système informatique, la direction y pointe vers le bas et est toujours positive. Cet algorithme fournit une solution efficace en répertoriant les sommets dans le sens antihoraire en utilisant des coordonnées y-down positives. Cela contrecarrera ces deux faits, ce qui entraînera une zone positive.
Parlons maintenant d'un programme Java qui implémente l'algorithme Slicker.
Étape 1 - Créez une classe "Slicker" et ses deux classes internes "Coordonnées" et "Poly".
Étape 2 - Déclarez et initialisez la constante "MAXIMUM" pour limiter le nombre de côtés du polygone.
Étape 3 - Créez un tableau d'objets de classe "Coordonnées" à l'intérieur de la classe interne "Poly". Ensuite, créez un constructeur de la classe "Poly" pour stocker les coordonnées dans ce tableau d'objets.
Étape 4 - Définissez davantage la méthode "calcAr" et le paramètre "cr". Dans cette méthode, nous allons créer une boucle for qui s'étendra sur le nombre de côtés du polygone et calculera l'aire.
Étape 5 - Maintenant dans la méthode main, créez un objet "cr" de classe "Poly". Nous obtiendrons alors le nombre de côtés et les coordonnées du polygone auprès de l'utilisateur.
Étape 6 - Enfin, nous appellerons la méthode "calcAr" et vérifierons si la zone est positive ou négative à l'aide d'un bloc if-else. Si positif, l'instruction de bloc "if" est exécutée, sinon le bloc else est exécuté.
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
Aucune forme plane ne peut être considérée comme un polygone, comme un cercle, bien qu'il s'agisse d'une forme plane fermée sans aucun côté. Nous ne pouvons donc pas appeler cela un polygone. Dans cet article, nous avons créé un programme Java pour calculer l'aire d'un polygone à l'aide de l'algorithme Slicker.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!