All about flooble | fun stuff | Get a free chatterbox | Free JavaScript | Avatars    
perplexus dot info

Home > Algorithms
Intersecting lines (Posted on 2003-07-01) Difficulty: 3 of 5
You are given two straight line segments, each defined by the coordinates of its endpoints. Segment AB goes from (Ax,Ay) to (Bx,By) and segment CD - from (Cx,Cy) to (Dx,Dy).

How would you determine if the two line segments intersect?

(Assume that you can't just draw the lines and see)

See The Solution Submitted by levik    
Rating: 4.0000 (2 votes)

Comments: ( Back to comment list | You must be logged in to post comments.)
Solution An easier way | Comment 3 of 20 |
If line segments AB and CD intersect, then points C and D will fall on opposite sides of AB (or one will fall directly on AB), and similarly, points A and B will fall on eith side of (or on) CD. Therefore, one means of determining if line segments AB and CD intersect is as follows:
  1. Convert all (x,y) coordinates to (r,θ) coordinates relative to point A.
  2. For AB to intersect CD, one requirement is for θb to be between θc and θd, inclusive. If not, the line segments do not intersect.
  3. Next, convert all (x,y) coordinates to (r,θ) coordinates relative to point C.
  4. If θd is between θa and θb, inclusive, the line segments intersect.
It is a straight-forward exercise to write an algorithm to perform this function, so one is not included here.
  Posted by Bryan on 2003-07-01 12:27:50
Please log in:
Login:
Password:
Remember me:
Sign up! | Forgot password


Search:
Search body:
Forums (0)
Newest Problems
Random Problem
FAQ | About This Site
Site Statistics
New Comments (5)
Unsolved Problems
Top Rated Problems
This month's top
Most Commented On

Chatterbox:
Copyright © 2002 - 2024 by Animus Pactum Consulting. All rights reserved. Privacy Information