2016-11-11 9 views
-2

Im пытается найти пункт Line2D объекты inersections или просто ответьте, если его пересечение. Все, что я получил прямо сейчас, определенные линии и эта часть кода:Точка пересечения двух линий

class Linia { 
    public java.awt.geom.Line2D.Double getLine() { 
     return line; 
    } 
    public void setLine(java.awt.geom.Line2D.Double line) { 
     this.line = line; 
    } 
    private java.awt.geom.Line2D.Double line; 
} 

public class Lines { 

    public static java.awt.geom.Line2D.Double create(double x1, double y1,double x2, double y2) { 
     java.awt.geom.Line2D.Double tmpL = new java.awt.geom.Line2D.Double(); 
     tmpL.x1 = x1; 
     tmpL.y1 = y1;  
     tmpL.x2 = x2; 
     tmpL.y2 = y2; 
     return tmpL;  
    } 
    public int getIle() { 
     return ile; 
    } 
    public void setIle(int k) { 
     this.ile=ile; 
    } 
    private int ile; 

    public static void main(String[] args) { 
     int j, a = 0, z = 0, i, v = 0; 

     Scanner f = new Scanner(System.in); 
     j = f.nextInt(); 

     double pktx[] = new double[j]; 
     double pkty[] = new double[j]; 
     Lines ile1 = new Lines(); 
     ile1.setIle(Integer.valueOf(j)); 
     for (i = 0; i < j; i++) { 
      Scanner h = new Scanner(System.in); 
      pktx[i] = h.nextInt(); 
      Scanner o = new Scanner(System.in); 
      pkty[i] = o.nextInt(); 
     } 
     for (i = j - 1; i > 0; i--) { 
      a=a+i; 
     } 
     Linia[] line = new Linia[a]; 
     for (v = 0; v < a; v++) line[v]=new Linia(); 
     v=0; 
     for (z = 0; z < j; z++) { 
      double d=pktx[z]; 
      double y=pkty[z]; 
      for (i = z + 1; i < j; i++) { 

       double u = pktx[i]; 
       double t = pkty[i]; 
       line[v].setLine(create(Double.valueOf(d), Double.valueOf(y), Double.valueOf(u), Double.valueOf(t))); 
       System.out.println("Linia " + v + " " + line[v].getLine().getBounds()); 
       v++; 
      } 
     } 
     CTriangle count=new CTriangle(); 
     count.linesIntersect(line[3], line[5]); 
    } 
}  

public class CTriangle { 

    public static boolean linesIntersect(Linia l1, Linia l2) { 
     System.out.println("Crossing"); 
     return false; 
    } 
} 

Для точек 1,1 4,1 4,4 1,4 там shoudn't появляются Crossing, но это делает.

Я ищу метод, который показывает пересечение, потому что метод linesIntersection возвращает false или true. Или правильная реализация метода linesintersection.

+0

Где код, где вы пытаетесь проверить, пересекаются ли линии друг с другом? Мы можем помочь вам с конкретными проблемами, но мы не пишем ваш код для вас. – Robert

+0

Используйте класс java.awt.geom.Line2D, он уже имеет метод тестирования пересечения, а также множество других полезных методов. Если вам нужны вычисления, проверьте исходный код или google для обнаружения пересечения линий, чтобы найти учебник по рассматриваемой математике. – Durandal

ответ

0

Кто-то сказал мне, что я могу использовать линии получения линий в методах ввода. Может возникнуть проблема? Или, возможно, лучше использовать любой другой mothode, подключенный к классу line2d, чтобы найти точку пересечения.