amélioration du code et de la javadoc
This commit is contained in:
@@ -3,8 +3,20 @@ package fr.monkhanny.dorfromantik.utils;
|
|||||||
import java.awt.Point;
|
import java.awt.Point;
|
||||||
import java.awt.Polygon;
|
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 {
|
public class Hexagon extends Polygon {
|
||||||
|
/**
|
||||||
|
* Angle entre deux sommets de l'hexagone
|
||||||
|
*/
|
||||||
private static final int ANGLE_BETWEEN_VERTICES = 60;
|
private static final int ANGLE_BETWEEN_VERTICES = 60;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -8,13 +8,37 @@ import fr.monkhanny.dorfromantik.enums.Biome;
|
|||||||
import fr.monkhanny.dorfromantik.game.Tile;
|
import fr.monkhanny.dorfromantik.game.Tile;
|
||||||
import fr.monkhanny.dorfromantik.enums.TileOrientation;
|
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 {
|
public class HexagonDrawer {
|
||||||
|
/**
|
||||||
|
* Tuile à dessiner.
|
||||||
|
*/
|
||||||
private Tile tile;
|
private Tile tile;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructeur pour initialiser la tuile à dessiner.
|
||||||
|
*
|
||||||
|
* @param tile Tuile à dessiner
|
||||||
|
*/
|
||||||
public HexagonDrawer(Tile tile) {
|
public HexagonDrawer(Tile tile) {
|
||||||
this.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) {
|
public void drawHexagon(Graphics2D g2d, double radius, Point center) {
|
||||||
double hexRadius = radius / Math.sqrt(3) / 3;
|
double hexRadius = radius / Math.sqrt(3) / 3;
|
||||||
double paddingX = center.x - radius;
|
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);
|
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) {
|
private void drawHexagonRow(Graphics2D g2d, double rowX, double rowY, double radius, int rowLength) {
|
||||||
int gRadius = tile.getRadius();
|
int gRadius = tile.getRadius();
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user