amélioration du code et de la javadoc

This commit is contained in:
2024-12-06 23:02:38 +01:00
parent 4c8be6cf96
commit 35d25bb960
2 changed files with 46 additions and 1 deletions

View File

@@ -3,8 +3,20 @@ package fr.monkhanny.dorfromantik.utils;
import java.awt.Point;
import java.awt.Polygon;
/**
* Classe représentant un hexagone.
*
* Cette classe est une extension de la classe {@link Polygon}
* et permet de créer un polygone ayant la forme d'un hexagone, en spécifiant les coordonnées
* du centre, le rayon ainsi qu'un angle de départ optionnel.
*
* @version 1.0
* @author Khalid CHENOUNA
*/
public class Hexagon extends Polygon {
/**
* Angle entre deux sommets de l'hexagone
*/
private static final int ANGLE_BETWEEN_VERTICES = 60;
/**

View File

@@ -8,13 +8,37 @@ import fr.monkhanny.dorfromantik.enums.Biome;
import fr.monkhanny.dorfromantik.game.Tile;
import fr.monkhanny.dorfromantik.enums.TileOrientation;
/**
* Classe utilitaire pour dessiner un hexagone et ses différentes facettes.
*
* Cette classe est utilisée pour dessiner une tuile hexagonale représentant les différentes biomes.
* Elle permet de gérer l'affichage graphique des tuiles en fonction de leurs caractéristiques.
*
* @version 1.0
* @author Lenny FOULOU, Khalid CHENOUNA
*/
public class HexagonDrawer {
/**
* Tuile à dessiner.
*/
private Tile tile;
/**
* Constructeur pour initialiser la tuile à dessiner.
*
* @param tile Tuile à dessiner
*/
public HexagonDrawer(Tile tile) {
this.tile = tile;
}
/**
* Dessine un hexagone à partir du centre et du rayon spécifiés.
*
* @param g2d Contexte graphique pour dessiner l'hexagone
* @param radius Rayon de l'hexagone
* @param center Centre de l'hexagone
*/
public void drawHexagon(Graphics2D g2d, double radius, Point center) {
double hexRadius = radius / Math.sqrt(3) / 3;
double paddingX = center.x - radius;
@@ -29,6 +53,15 @@ public class HexagonDrawer {
drawHexagonRow(g2d, paddingX + radius * 0.5, paddingY + radius + radius * Math.sqrt(3) / 2, hexRadius, 4);
}
/**
* Dessine une rangée d'hexagones à partir du centre et du rayon spécifiés.
*
* @param g2d Contexte graphique pour dessiner l'hexagone
* @param rowX Position X de la rangée
* @param rowY Position Y de la rangée
* @param radius Rayon de l'hexagone
* @param rowLength Longueur de la rangée
*/
private void drawHexagonRow(Graphics2D g2d, double rowX, double rowY, double radius, int rowLength) {
int gRadius = tile.getRadius();