Un peu de ménage dans le git

This commit is contained in:
2024-12-02 20:51:28 +01:00
parent 0e6450f8c8
commit 9b2a314262
102 changed files with 49818 additions and 27 deletions

View File

@@ -0,0 +1,74 @@
package fr.monkhanny.dorfromantik.utils;
import java.awt.Point;
import java.awt.Polygon;
public class Hexagon extends Polygon {
private static final int ANGLE_BETWEEN_VERTICES = 60;
/**
* Constructeur d'un hexagone
*
* @param x Position x du centre de l'hexagone
* @param y Position y du centre de l'hexagone
* @param radius Rayon de l'hexagone
* @param startAngle Angle de départ de l'hexagone
*/
public Hexagon(int x, int y, int radius, double startAngle) {
if (radius <= 0) {
throw new IllegalArgumentException("Le rayon doit être supérieur à zéro.");
}
for (int i = 0; i < 6; i++) {
double angleRad = calculateAngle(i, startAngle);
this.addPoint(
(int) (x + radius * Math.cos(angleRad)),
(int) (y + radius * Math.sin(angleRad))
);
}
}
/**
* Calcule l'angle en radians pour un sommet donné
*
* @param vertexIndex Index du sommet (0 à 5)
* @param startAngle Angle de départ
* @return Angle en radians
*/
private double calculateAngle(int vertexIndex, double startAngle) {
return Math.toRadians(vertexIndex * ANGLE_BETWEEN_VERTICES + startAngle);
}
/**
* Constructeur d'un hexagone
*
* @param center Centre de l'hexagone
* @param radius Rayon de l'hexagone
* @param startAngle Angle de départ de l'hexagone
*/
public Hexagon(Point center, int radius, double startAngle) {
this(center.x, center.y, radius, startAngle);
}
/**
* Constructeur d'un hexagone
*
* @param x Position x du centre de l'hexagone
* @param y Position y du centre de l'hexagone
* @param radius Rayon de l'hexagone
*/
public Hexagon(int x, int y, int radius) {
this(x, y, radius, 0);
}
/**
* Constructeur d'un hexagone
*
* @param center Centre de l'hexagone
* @param radius Rayon de l'hexagone
*/
public Hexagon(Point center, int radius) {
this(center.x, center.y, radius, 0);
}
}