package FigurasGeometricas; import FigurasGeometricas.Excepciones.TrianguloInvalido; public class Triangulo { Punto [] vertices; public Triangulo(Punto p1, Punto p2, Punto p3) throws TrianguloInvalido { if (p1.equals(p2) || p1.equals(p3) || p2.equals(p3)) throw new TrianguloInvalido(); vertices = new Punto[3]; vertices[0] = p1; vertices[1] = p2; vertices[2] = p3; } public double perimetro(){ return vertices[0].distancia(vertices[1]) + vertices[1].distancia(vertices[2]) + vertices[2].distancia(vertices[0]); } public void mover(double desplazamientoX, double desplazamientoY) { for (int i = 0; i < 3; i++) vertices[i].mover(desplazamientoX, desplazamientoY); } public Triangulo crearCopiaEnProfundidad() throws TrianguloInvalido { return new Triangulo( vertices[0].crearCopia(), vertices[1].crearCopia(), vertices[2].crearCopia() ); } public boolean equals(Object otroObjeto) { if (! (otroObjeto instanceof Triangulo)) return false; Triangulo otroTriangulo = (Triangulo) otroObjeto; for (int i = 0; i < 3; i++) { boolean verticeCoincide = false; for (int j = 0; j < 3; j++) { if ( vertices[i].equals(otroTriangulo.vertices[j]) ){ verticeCoincide = true; break; } } if (! verticeCoincide) return false; } return true; } }