import java.awt.Color; /** Un segment est défini pas ses deux points qui constituent ses * extrémités. Un segment peut être affiché et translaté. * * @author Xavier Crégut * @version 1.9 */ public class Segment { private Point extremite1; private Point extremite2; private Color couleur; /** Construire un Segment à partir de ses deux points extrémités. * @param ext1 le premier point extrémité * @param ext2 le deuxième point extrémité */ public Segment(Point ext1, Point ext2) { this.extremite1 = ext1; this.extremite2 = ext2; this.couleur = Color.green; } /** Translater le segment. * @param dx déplacement suivant l'axe des X * @param dy déplacement suivant l'axe des Y */ public void translater(double dx, double dy) { // System.err.println("Segment.translater(double, double) non implantée"); this.extremite1.translater(dx, dy); this.extremite2.translater(dx, dy); } /** Obtenir la longueur du segment. * @return la longueur du segment */ public double longueur() { // System.err.println("Segment.longueur() non implantée"); return Math.sqrt( Math.pow(this.extremite1.getY() - this.extremite2.getY(), 2) + Math.pow(this.extremite1.getX() - this.extremite2.getX(), 2)); } /** Afficher le segment. Le segment est affiché sous la forme : *
* [extremite1-extremite2] **/ public void afficher() { // System.err.println("Segment.afficher() non implantée"); System.out.print("[ "); this.extremite1.afficher(); System.out.print(" - "); this.extremite2.afficher(); System.out.print(" ]"); } /** Obtenir la couleur du segment. * @return la couleur du segment */ public Color getCouleur() { return this.couleur; } /** Changer la couleur du segment. * @param nouvelleCouleur nouvelle couleur */ public void setCouleur(Color nouvelleCouleur) { this.couleur = nouvelleCouleur; } public Point getExtremite(int id) { if (id == 1) { return this.extremite1; } else { return this.extremite2; } } }