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 ?
Sie eine Ausnahme nicht werfen. Das sollte für Ausnahmesituationen reserviert sein. Ich glaube nicht, dass parallele Linien diesen Standard erfüllen. – duffymo
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
Ich habe eine illegalArgumentException werfen. Die Zuweisung sagt Folgendes: • findIntersect() löst eine IllegalArgumentException aus, wenn die beiden Zeilen parallel sind. – Gerald