Sto leggendo un codice in cui viene chiesto di verificare se si ha di fronte un triangolo isoscele tra le figure proposte, quindi vengono forniti in input dei dati relativi a dei vertici che qui ripropongo :
Triangolo: 1: 0,0 = 0,1 = 2,0
Rettangolo: 2: 10,10 = 10,20 = 20,20 = 20,10
Triangolo: 3: 0,5 = 0,6 = 7,0
Rettangolo: 4: 5,5 = 5,10 = 10,10 = 10,5
Rettangolo: 8: 2,2 = 5,5 = 6,4 = 3,1
Il codice realizzato è il seguente(dove v è una classe "Vertice" all'interno della quale vengono letti i vertici e calcolata la distanza) :
public boolean isoscele() { //è un triangolo avente due lati uguali, o equivalentemente due angoli uguali
if(nome.equals("Triangolo")) { //nel triangolo abbiamo 3 vertici
if(v.get(0).distanza(v.get(1)) == v.get(1).distanza(v.get(2)) && v.get(1).distanza(v.get(2)) != v.get(2).distanza(v.get(0)))
return true;
if(v.get(1).distanza(v.get(2)) == v.get(2).distanza(v.get(0)) && v.get(2).distanza(v.get(0)) != v.get(0).distanza(v.get(1)))
return true;
if(v.get(2).distanza(v.get(0)) == v.get(0).distanza(v.get(1)) && v.get(0).distanza(v.get(1)) != v.get(1).distanza(v.get(2)))
return true;
}
return false;
}
La domanda è la seguente : Quando fa tutti gli if nel codice suddetto, perchè ad esempio fa if(v.get(0).distanza(v.get(1)) == v.get(1).distanza(v.get(2)) e non semplciemente if(v.distanza(v.get(1)) == v.distanza(v.get(2)) ???
Cioè non capisco bene questi if, ho capito che fa la comparazione tra le lunghezze dei lati in modo da verificare che ne abbia esattamente due e sia isoscele, ma non ho ben capito la scrittura del codice in sè
Ad esempio : nel 1° if verifica che la distanza tra il vertice 0 e 1 = alla distanza tra il vertice 1 e 2 e che quest'ultima distanza sia diversa da quella tra i vertici 2 e 0 (iterando la stesso ragionamento per tutti e 3 i casi possibili?) ??