Implemente uma classe Triângulo usando como base a classe Ponto2D do
exercício anterior. A classe Triângulo deve possuir três atributos do tipo Ponto2D
(os vértices do triângulo) e um construtor que recebe três pontos como
parâmetros. Defina os seguintes métodos para a classe:
a) static boolean formaTriangulo (Ponto2D p1, Ponto2D p2,
Ponto2D p3) ? retorna True se os três pontos formam um triângulo e False,
caso contrário. Em um triângulo, a soma de quaisquer dois lados é maior do
que o terceiro lado.
b) boolean equilatero() ? retorna True se o triângulo é equilátero e False,
caso contrário. Um triângulo equilátero possui os três lados iguais.
c) boolean isósceles() ? retorna True se o triângulo é isósceles e False,
caso contrário. Um triângulo isósceles possui dois lados iguais.
d) boolean escaleno() ? retorna True se o triângulo é escaleno e False, caso
contrário. Um triângulo escaleno não possui nenhum lado igual a outro.
e) double perimetro() ? retorna o perímetro do triângulo.
f) double area() ? retorna a área do triângulo. Use a seguinte fórmula para
cálculo da área, onde sp = semi-perímetro do triângulo:
sp = (lado1 + lado2 + lado3) / 2
área = raiz quadrada de (sp * (sp ? lado1) * (sp ? lado2) * (sp ? lado3))
Crie um método main para testar o uso da classe.
Bom, a classe Ponto2D eu criei no exercício anterior. É esta:
[code]package pontogeometrico;
public class Ponto2D {
private int x,y;
public Ponto2D(){
x=0;
y=0; }
public Ponto2D(int x, int y){
this.x=x;
this.y=y; }
public Ponto2D(Ponto2D ponto){
this.x=ponto.x;
this.y=ponto.y; }
public int getX(){
return x; }
public int getY(){
return y; }
public void setX(int x){
this.x=x; }
public void setY(int y){
this.y=y; }
public double DistPontos (Ponto2D p1, Ponto2D p2){
return (Math.sqrt(Math.pow((p2.x-p1.x),2) + Math.pow((p2.y-p1.y), 2)));}
}[/code]
A classe Triângulo eu fiz até aqui:
[code]package pontogeometrico;
public class Triangulo {
private Ponto2D vertice1;
private Ponto2D vertice2;
private Ponto2D vertice3;
public Triangulo (Ponto2D p1, Ponto2D p2, Ponto2D p3){
vertice1=p1;
vertice2=p2;
vertice3=p3; }
static boolean formaTriangulo (Ponto2D p1, Ponto2D p2,Ponto2D p3){
if (p1.DistPontos(p1, p2)+ p1.DistPontos(p1, p3)>p2.DistPontos(p2, p3) || (p1.DistPontos(p1, p2)+ p2.DistPontos(p2, p3)>p3.DistPontos(p1, p3)) || (p2.DistPontos(p2, p3)+ p1.DistPontos(p1, p3)>p1.DistPontos(p1, p2))){
return true;}
return false; }[/code]
Não estou conseguindo implementar o método para testar se é equilátero, isósceles, escaleno…