TP-programmation-orientee-o.../TP01/Schema.java
2023-06-20 21:02:09 +02:00

68 lines
1.8 KiB
Java

/** 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();
}
}