/** Un Schéma est défini pas trois points qui constituent ses * sommets. Un Schéma peut être affiché et translaté. * * @author * @version 1.9 */ public class Schema { private Segment s1; private Segment s2; private Segment s3; private Point barycentre; /** Construire un Schéma à partir de ses trois sommets. * @param s1 le premier point du schéma * @param s2 le deuxième point du schéma * @param s3 le troisème point du schéma */ public Schema(Point p1, Point p2, Point p3) { this.s1 = new Segment(p1, p2); this.s2 = new Segment(p2, p3); this.s3 = new Segment(p3, p1); this.barycentre = calcul_barycentre(p1, p2, p3); } /** * Calcul le barycentre à partir de trois points * @param p1 * @param p2 * @param p3 * @return le barycentre de trois points */ private static Point calcul_barycentre(Point p1, Point p2, Point p3) { return new Point( (p1.getX() + p2.getX() + p3.getX())/3, (p1.getY() + p2.getY() + p3.getY())/3 ); } /** * Translater le schéma. * * @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) { this.s1.getExtremite(1).translater(dx, dy); this.s2.getExtremite(1).translater(dx, dy); this.s3.getExtremite(1).translater(dx, dy); this.barycentre.translater(dx, dy); } /** * Afficher le schéma */ public void afficher() { System.out.print("[ "); this.s1.getExtremite(1).afficher(); System.out.print(" - "); this.s2.getExtremite(1).afficher(); System.out.print(" - "); this.s3.getExtremite(1).afficher(); System.out.print(" ], barycentre: "); this.barycentre.afficher(); } }