2017-04-03 49 views
-4

我有一个简单的Point对象交叉口的最后几行

public class Point { 
private double x; 
private double y; 
} 

和简单的线条对象

public class Line { 
private Point start; 
private Point end; 
} 

现在我需要找到两条线的交叉点,这是不是因为线那么简单有起点和终点....

public boolean isIntersecting(Line other) { 
.... 
} 

public Point intersectionWith(Line other) { 
..... 

任何意识?

+5

这感觉就像它几乎完全是一个数学问题 - 没有迹象表明编程是这里的问题。在互联网上有*负载*的网页关于发现线是否相交的数学。你有看过吗?你遇到了什么问题?目前,这个问题至少*看起来像你没有做足够多的研究。 –

+1

了解算法以检查两条线段是否相交并尝试通过代码实现它。如果您在实施过程中遇到任何问题,您可以在此处询问。 – niyasc

+0

https://www.topcoder.com/community/data-science/data-science-tutorials/geometry-concepts-line-intersection-and-its-applications/ –

回答

0

首先,我认为你的意思是线段,线条没有开始和结束。 然后, 将起点和终点取为y = kx + b; 你会得到(K1,B1)和(K2,B2),

如果K1 == k2和B1!= B2 两条线是平行的

如果K1 == k2和B1 B2 == 两行相同的行

如果K1!= K2 使用Y = K1X + b1和Y = k2x + B2,以获得交叉点(X,Y)

最后比较的点(x,y)的用开始点和结束点,看看是否有交集。