# Finding out whether two line (segments) intersect

I need to know whether or not two line segments intersect. I thought the formula for that is y = mx + b but I don't think that will work for what I need, at least I think I need to first know whether the line segments intersect, because that formula just gives the point where the two lines will eventually intersect.

For example, say I have two line segments. Line 1 has a starting point of 15, 10 and its ending point is 30, 17. Line 2 has a starting point of 29,5 and an ending point of 33, 14. These shouldn't intersect within those coordinates, but by using y = mx + b I find that they intersect as 35, 19.5 (approx.)

How can I find out whether these line segments should intersect each other?

-

The only reason that two lines will not intersect is if they are parallel. Being parallel is the same as having the same slope. So in your example, Line 1 has slope $$\frac{17 - 10}{30 - 15} = \frac{7}{15}.$$ Line 2 has slope $$\frac{14 - 5}{33 - 29} = \frac{9}{4}.$$ Since these two numbers are not the same, the lines are not parallel, and they intersect somewhere.

Edit: Now if what you are considering is only the line segment between the two points, I would first consider the slopes as we just did. If they are parallel, then for sure you know that they do not intersect. If, however, the slopes are different, then they will intersect in one point. You then need to find this point and see if it happens in bounds given on the $x$-values.

So when you find that the lines intersect at the point $(35, 19.5)$, then this intersection is outside the bounds given since your first line for example only goes from $x = 15$ to $x = 30$. It never reaches $x = 35$.

-
sorry for lately asking this question. Can you please explain why you need to test only X coordinate to know the lines segment intersect not both X and Y coordinate. Thanks in advance. –  Trying Aug 28 '13 at 10:16
@Trying: Two lines can only intersect in one point. If the $x$-coordinate to that point is outside the given interval, then the two line segments will not intersect. –  Thomas Aug 28 '13 at 15:11

I'm assuming you can already check intersection of lines, as that's already been answered and you seem to understand it fine.

The segments are $AB$ and $CD$. They intersect if their intersection point lies within the darker middle rectangle (i.e. the area in space that they both occupy). In other words, if the intersection point is $(x,y)$, then $x$ must be less than the smallest right-side value (the $x$-coordinate of $AH$ here), and larger than the smallest left-side value ($GB$). Here the check $x>GB_x$ fails, so they don't intersect. The idea is similar for $y$ values, and it has to pass all 4 tests (two for $x$ and two for $y$) before you can conclude that they intersect.

-
I think this is essentially what Thomas described at the end of his answer. –  daveMac May 25 '12 at 16:24
I was mainly trying to clarify that concept, and point out that it could be within the right x values but not count as an intersection point because it's still outside of the right y values, which his answer didn't mention. –  Robert Mastragostino May 25 '12 at 17:02
That is very true about the need to check the y as well. (I think I just took that for granted.) –  daveMac May 25 '12 at 17:34

If two lines have unequal slope they will intersect in a a point. If two lines have equal slope, they are either disjointly parallel and never intersect, or they are the same line.

-
As it seems the OP is using "line" to mean "line segment", in the case that the slopes are different, it is also necessary to check whether the intersection occurs in the necessary segments, which is easy enough to do from the coordinates of the intersection point. –  Matt Pressland May 25 '12 at 12:39
I updated my question to clarify that I am trying to figure out if the line "segments" intersect. –  daveMac May 25 '12 at 14:55