/** * MyTriangle2D * Rappresenta un triangolo nel piano * * @author A. Luchetta * @version 5-Nov-2007 */ public class MyTriangle2D { private MyPoint2D p1; private MyPoint2D p2; private MyPoint2D p3; /** * Inizializza un triangolo * @param q1 primo vertice di questo triangolo * @param q2 secondo vertice di questo triangolo * @param q3 terzo vertice di questo triangolo */ public MyTriangle2D(MyPoint2D q1, MyPoint2D q2, MyPoint2D q3) { p1 = q1; p2 = q2; p3 = q3; } /** * Inizializza un triangolo * @param x1 ascissa del primo vertice * @param y1 ordinata del primo vertice * @param x2 ascissa del secondo vertice * @param y2 ordinata del secondo vertice * @param x3 ascissa del terzo vertice * @param y3 ordinata del terzo vertice */ public MyTriangle2D( double x1, double y1, double x2, double y2, double x3, double y3 ) { p1 = new MyPoint2D(x1, y1); p2 = new MyPoint2D(x2, y2); p3 = new MyPoint2D(x3, y3); } /** * Trasla questo triangolo * @param dx traslazione lungo l'asse x * @param dy traslazione lungo l'asse y * @return un nuovo triangolo traslato rispetto a questo triangolo */ public MyTriangle2D translate(double dx, double dy) { MyPoint2D s1 = p1.translate(dx, dy); MyPoint2D s2 = p2.translate(dx, dy); MyPoint2D s3 = p3.translate(dx, dy); return new MyTriangle2D(s1, s2, s3); } /** * Ruota questo triangolo con centro di rotazione nell'origine degli assi * @param alpha angolo di rotazione * @return un nuovo triangolo ruotato rispetto a questo triangolo */ public MyTriangle2D rotate(double alpha) { MyPoint2D s1 = p1.rotate(alpha); MyPoint2D s2 = p2.rotate(alpha); MyPoint2D s3 = p3.rotate(alpha); return new MyTriangle2D(s1, s2, s3); } /** * Descrizione testuale nella forma "triangolo [P1, P2, P3]" * @return descrizione testuale */ public String toString() { return "triangolo [" + p1 + ", " + p2 + ", " + p3 + "]"; } }