給定直角座標上的兩條線,肯定這兩條線會不會相交

/**java

 * 功能:給定直角座標上的兩條線,肯定這兩條線會不會相交。數據結構

 */app

 

[java] view plain copythis

 

  1. public class Line {  
  2.   
  3.     static double epsilon=0.000001;  
  4.     public double slope;//斜率  
  5.     public double yintercept;//與y軸的截距  
  6.     public static void main(String[] args) {  
  7.         // TODO Auto-generated method stub  
  8.   
  9.     }  
  10.   
  11.     /** 
  12.      * 假設: 
  13.      * 1)若兩條線是相同的(斜率和y軸截距相等),則認爲這兩條線相交; 
  14.      * 2)設計線的數據結構。 
  15.      * 思路: 
  16.      * 兩條線不平行必相交,所以只需檢查二者的斜率是否相同,或者是否爲同一條。 
  17.      *  
  18.      * 此類問題的注意事項: 
  19.      * 1)多提問,肯定假設條件或前提條件。 
  20.      * 2)儘可能設計並使用數據結構,注重面向對象設計。 
  21.      * 3)仔細考慮線的數據結構的設計。 
  22.      * 4)不要假設斜率和y軸截距爲整數。 
  23.      * 5)瞭解浮點數表示法的限制。不要用「==」來檢查浮點數是否相等,而應該檢查二者差值是否小於某個極小值(如epsilon=0.000001)。 
  24.      *  
  25.      * @param line2 
  26.      * @return 
  27.      */  
  28.     public boolean intersect(Line line2){  
  29.         return Math.abs(this.slope-line2.slope)>epsilon||Math.abs(this.yintercept-line2.yintercept)<epsilon;  
  30.     }  
  31.       
相關文章
相關標籤/搜索