Intersecting Red and Blue Line Segments in Optimal Time and Precision

A common geometric problem in computer graphics and geographic information systems is to compute the arrangement of a set of n segments that can be colored red and blue so that there are no red/red or blue/blue crossings. We give a sweep algorithm that uses the minimum arithmetic precision and runs in optimal O(n log n + k) time and O(n) space to output an arrangement with k vertices, or O(n log n) time to determine k. Our initial implementation in Java can be found at http:\\www.cs.unc.edu\~snoeyink\demos\rbseg.

[1]  Robert E. Tarjan,et al.  Making Data Structures Persistent , 1989, J. Comput. Syst. Sci..

[2]  Harry G. Mairson,et al.  Reporting and Counting Intersections Between Two Sets of Line Segments , 1988 .

[3]  Aristides A. G. Requicha,et al.  Closure of Boolean operations on geometric entities , 1980 .

[4]  Mark H. Overmars Designing the Computational Geometry Algorithms Library CGAL , 1996, WACG.

[5]  Jack Snoeyink,et al.  Counting and Reporting Red/Blue Segment Intersections , 1993, WADS.

[6]  Timothy M. Chan A Simple Trapezoid Sweep Algorithm for Reporting Red/Blue Segment Intersections , 1994, CCCG.

[7]  Leonidas J. Guibas,et al.  Snap rounding line segments efficiently in two and three dimensions , 1997, SCG '97.

[8]  Robert E. Tarjan,et al.  Self-adjusting binary search trees , 1985, JACM.

[9]  Olivier Devillers,et al.  Scalable algorithms for bichromatic line segment intersection problems on coarse grained multicomputers , 1996, Int. J. Comput. Geom. Appl..

[10]  James F. Blinn,et al.  Jim Blinn's corner - A trip down the graphics pipeline: line clipping , 1991, IEEE Computer Graphics and Applications.

[11]  Kurt Mehlhorn,et al.  Implementation of a sweep line algorithm for the Straight \& Line Segment Intersection Problem , 1994 .

[12]  Leonidas J. Guibas,et al.  Rounding arrangements dynamically , 1995, SCG '95.

[13]  Michael T. Goodrich,et al.  Education forum: Web Enhanced Textbooks , 1998, SIGA.

[14]  Jean-Daniel Boissonnat,et al.  Efficient algorithms for line and curve segment intersection using restricted predicates , 1999, SCG '99.

[15]  Robert E. Tarjan,et al.  A data structure for dynamic trees , 1981, STOC '81.

[16]  David M. Mount Storing the subdivision of a polyhedral surface , 1987, Discret. Comput. Geom..

[17]  Thomas Ottmann,et al.  Algorithms for Reporting and Counting Geometric Intersections , 1979, IEEE Transactions on Computers.

[18]  Kurt Mehlhorn,et al.  LEDA: a platform for combinatorial and geometric computing , 1997, CACM.

[19]  Michael Ian Shamos,et al.  Geometric intersection problems , 1976, 17th Annual Symposium on Foundations of Computer Science (sfcs 1976).

[20]  Chee-Keng Yap,et al.  A core library for robust numeric and geometric computation , 1999, SCG '99.

[21]  Leonidas J. Guibas,et al.  Reporting Red—Blue Intersections between Two Sets of Connected Line Segments , 2002, Algorithmica.

[22]  Ivan J. Balaban,et al.  An optimal algorithm for finding segments intersections , 1995, SCG '95.

[23]  Victor J. Milenkovic Practical methods for set operations on polygons using exact arithmetic , 1995, CCCG.

[24]  Michael Ian Shamos,et al.  Computational geometry: an introduction , 1985 .

[25]  Bernard Chazelle Reporting and Counting Segment Intersections , 1986, J. Comput. Syst. Sci..

[26]  Jean-Daniel Boissonnat,et al.  Robust Plane Sweep for Intersecting Segments , 2000, SIAM J. Comput..

[27]  John D. Hobby,et al.  Practical segment intersection with finite precision output , 1999, Comput. Geom..