68 lines
1.8 KiB
Java
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();
|
||
|
}
|
||
|
|
||
|
}
|