Salve a tutti, devo trovare il lato più lungo in assoluto... io so come si trova il lato più lungo di tutte le figure, e lo ho fatto in tale modo:
File di input:
Triangolo,2,(0,0),(0,1),(2,0)
Rettangolo,3,(10,10),(10,20),(20,20),(20,10)
Nel Main : Dove Figura è la mia classe e figure è un ArrayList di Figura(lista di contenente tutte le singole figure)
PrintWriter pw1 = new PrintWriter (new FileWriter ("1.txt"));
double max=0;
for(Figura f4 : figure){
if(f4.distanza()>max)
max=f4.distanza();
pw1.println(f4.nome+f4.id+" ----> "+max);
}
pw1.close();
E nella classe Figura:
public double distanza(){
double distanza=0;
for(int i=0;i<lati.size()-1;i++){ //-1 xk i parte da 0 mentre size parte a contare da 1 (ci dice il numero di elementi)
double distanza1 = Math.sqrt(Math.pow(lati.get(i+1).y-lati.get(i).y, 2)+
Math.pow(lati.get(i+1).x-lati.get(i).x, 2));
distanza=distanza1;
}
double distanza1 = Math.sqrt(Math.pow(lati.get(0).y-lati.get(lati.size()-1).y, 2)+
Math.pow(lati.get(0).x-lati.get(lati.size()-1).x, 2));
distanza=distanza1;
return distanza;
}
Ora, Ho trovato per ogni figura il lato più lungo... ma per trovare il lato più lungo in assoluto? Potrei brutalmente fare un ulteriore For dentro quello già fatto nel main e trovare il massimo tra i massimi...ma sarebbe la soluzione più "compatta" e migliore? Altro non mi viene in mente