Line segment intersection
From Wikipedia, the free encyclopedia
In computational geometry, the line segment intersection problem supplies a list of line segments in the plane and asks us to determine whether any two of them intersect, or cross.
Naive algorithms examine each pair of segments, but this is highly inefficient, since most pairs of segments aren't anywhere close to one another in a typical input sequence. The most common, more efficient way to solve this problem is to use a sweep line algorithm, where we imagine a line sliding across the line segments and we track which line segments it intersects at each point in time using a dynamic data structure based on self-balancing binary search trees.
[edit] References
- Mark de Berg, Marc van Kreveld, Mark Overmars, and Otfried Schwarzkopf (2000). Computational Geometry, 2nd edition, Springer. ISBN 3-540-65620-0. Chapter 2: Line Segment Intersection, pp.19–44.
- Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. Introduction to Algorithms, Second Edition. MIT Press and McGraw-Hill, 1990. ISBN 0-262-03293-7. Section 33.2: Determining whether any pair of segments intersects, pp.934–947.
- J. L. Bentley and T. Ottmann., Algorithms for reporting and counting geometric intersections, IEEE Trans. Comput. C28 (1979), 643–647.
[edit] See also
- Bentley-Ottmann algorithm
- Shamos-Hoey algorithm
[edit] External links
- Robert Pless. Lecture 4 notes. Washington University in St. Louis, CS 506: Computational Geometry.
- A Java applet demonstrating the sweep line algorithm for the problem.
- Line segment intersection in CGAL, the Computational Geometry Algorithms Library
- For the simple case of testing the intersection of two line segments: Solution by Paul Bourke.
- A sample implementation of a computer algorithm to find the points that minimize distance between two line segments: http://www.geometryalgorithms.com/Archive/algorithm_0106/algorithm_0106.htm