2017-08-02 13 views
0

Ich mache ein Projekt in der Schule, die eine der Methoden den Schnittpunkt von zwei Linien finden. Es ersetzt den mx + b-Wert einer Zeile für die y-Werte der anderen Gleichung und löst dann nach x. Ich versuche einen "Wurf" zu erstellen. Wenn die beiden Linien parallel sind, wird eine illegalArgumentException ausgelöst. Hier ist die Methode (von der Schnurklasse) Ich bin zu Setup versuchen:Wie zu prüfen und zu testen, ob zwei Linien (lineare Gleichungen) parallel sind, indem eine illegalArgumentException werfen

public Point findIntersect(Line otherLine) { 
     double slope2 = otherLine.getSlope(); 
     double yIntercept2 = otherLine.getIntercept(); 

     double newX = (intercept - yIntercept2)/(slope2 - slope); 
     double newY = slope * newX + intercept; 
     Point aPoint = new Point(newX, newY); 
     return aPoint; 
    } 

und die Methode, die von begründeten Wesen:

public Point(double x, double y) { 
     setLocation (x, y); 
    } 

Hat jemand irgendwelche Vorschläge, wie man richtig, dies zu tun ?

+0

Sie eine Ausnahme nicht werfen. Das sollte für Ausnahmesituationen reserviert sein. Ich glaube nicht, dass parallele Linien diesen Standard erfüllen. – duffymo

+0

Was soll die Rückkehr für die _same_ Linie sein? Das Problem hier wäre, es gibt drei Arten von Kreuzungen; kein Schnittpunkt (parallele, aber deutliche Linien), ein einzelner Punkt (nicht parallele Linien) und die gesamte Linie (Linie, die sich selbst schneidet). Die Rückkehr eines "Punktes" wird nicht immer ausreichen. – user2478398

+0

Ich habe eine illegalArgumentException werfen. Die Zuweisung sagt Folgendes: • findIntersect() löst eine IllegalArgumentException aus, wenn die beiden Zeilen parallel sind. – Gerald

Antwort

0

Überprüfen, ob die Steigungen der Linien gleich sind. Dies zeigt an, dass die Linien parallel sind.

Sie können einen Scheck ähnlich wie diese haben:

if(slope == slope2){ 
    throw new IllegalArgumentException("Lines are parallel."); 
} 
0

dies nach der ersten Zeile Einfügen,

if (this.slope == otherLine.getSlope()) { 
    throw new IllegalArgumentException("Parallel lines will never intersect."); 
} 
Verwandte Themen