Skip to content

Classes PolyLine et Polygon

Classe PolyLine

Code
package v2.shapes;

import java.awt.Color;

public class PolyLine {
    public static final Color defaultDrawColor = Color.BLACK;

    private Point[] points;

    private Color drawColor;

    public PolyLine(Point[] points) {
        this(points, defaultDrawColor);
    }

    public PolyLine(Point[] points, Color drawColor) {
        this.points = points;
        this.drawColor = drawColor;
    }

    public Color getDrawColor() {
        return drawColor;
    }

    public void setDrawColor(Color drawColor) {
        this.drawColor = drawColor;
    }

    public Point[] getPoints() {
        return points;
    }

    public void setPoints(Point[] points) {
        this.points = points;
    }

    public void draw(Image image) {
        for (int i = 1; i < points.length; i++) {
            new Line(points[i - 1], points[i], drawColor).draw(image);
        }
    }
}

La classe PolyLine représente une série de segments de ligne connectés. Elle prend en entrée un tableau d’objets Point, qui définissent les sommets de la “polyligne” (ligne brisée, ou segmentée). Elle possède également une propriété drawColor pour spécifier la couleur des segments de ligne.

La méthode draw itère à travers le tableau points, dessinant un segment de Line entre chaque paire de points consécutifs en utilisant la drawColor spécifiée. En effet, elle dessine une ligne de points[0] à points[1], puis de points[1] à points[2], et ainsi de suite, jusqu’à ce que le dernier point soit atteint.

Classe Polygon

Code
package v2.shapes;

import java.awt.*;

public class Polygon {
    public static final Color defaultDrawColor = Color.BLACK;

    private Point[] points;

    private Color drawColor;

    public Polygon(Point[] points) {
        this(points, defaultDrawColor);
    }

    public Polygon(Point[] points, Color drawColor) {
        this.points = points;
        this.drawColor = drawColor;
    }

    public Color getDrawColor() {
        return drawColor;
    }

    public void setDrawColor(Color drawColor) {
        this.drawColor = drawColor;
    }

    public Point[] getPoints() {
        return points;
    }

    public void setPoints(Point[] points) {
        this.points = points;
    }

    public void draw(Image image) {
        new PolyLine(points, drawColor).draw(image);
        new Line(points[0], points[points.length - 1], drawColor).draw(image);
    }
}

La classe Polygon représente un polygone fermé. Comme PolyLine, elle utilise un tableau de Point pour ses sommets et une drawColor pour la couleur.

La principale différence réside dans la méthode draw. Polygon dessine non seulement une ligne entre chaque paire de points consécutifs (comme le fait PolyLine), mais elle dessine également une ligne fermant le polygone, entre le dernier point (points[points.length - 1]) et le premier point (points[0]). Elle utilise PolyLine pour dessiner les segments connectés et ensuite dessine explicitement la ligne fermante avec new Line(points[0], points[points.length - 1], drawColor).draw(image);. Cela crée un polygone complet plutôt qu’une simple ligne brisée.


Note

Page rédigée en partie avec l’aide d’un assistant IA, principalement à l’aide de Perplexity AI, avec le LLM Claude 3.5 Sonnet. L’IA a été utilisée pour générer des explications, des exemples et/ou des suggestions de structure. Toutes les informations ont été vérifiées, éditées et complétées par l’auteur.