2017-08-02 129 views
0

我在學校做一個項目,其中一個方法找到兩條線的交點。它用一行的mx + b值代替其他方程的y值,然後求解x。我試圖設置一個「扔」,如果兩條線平行,它會拋出一個非法的ArgumentException。下面是我試圖安裝方法(從Line類):如何檢查並測試兩條線(線性方程)是否通過拋出非法行爲非法argumentException

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

沒有人有任何建議,如何正確地做到這一點:

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; 
    } 

和方法就是BEING從屬實?

+0

不要拋出異常。這應該保留用於特殊情況。我認爲平行線不符合該標準。 – duffymo

+0

這個_same_行應該是什麼回報?這裏的問題是有三種類型的交叉點;沒有相交(平行但是不同的線),單個點(非平行線)和整個線(線與它自己相交)。返回'Point'並不總是足夠。 – user2478398

+0

我得拋出illegalArgumentException。賦值如下所示:•如果兩行平行,findIntersect()將拋出IllegalArgumentException。 – Gerald

回答

0

檢查線的斜率是否相等。這表明這些線是平行的。

你可以有一個類似的檢查:

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

第一行後插入此,

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