Red-Blue intersection detection algorithms, with applications to motion planning and collision detection

  • Authors:
  • P. Agarwal;M. Sharir

  • Affiliations:
  • Courant Institute of Mathematical Sciences, New York University, New York NY;School of Mathematical Sciences, Tel Aviv University, Israel

  • Venue:
  • SCG '88 Proceedings of the fourth annual symposium on Computational geometry
  • Year:
  • 1988

Quantified Score

Hi-index 0.00

Visualization

Abstract

Let &Ggr; be a collection of n (possibly intersecting) “red” Jordan arcs of some simple shape in the plane and let &Ggr;' be a similar collection of m “blue” arcs. We present several efficient algorithms for detecting an intersection between an arc of &Ggr; and an arc of &Ggr;'. (i) If the arcs of &Ggr;' form the boundary of a simply connected region, then we can detect a “red-blue” intersection in time &Ogr; (&lgr;s(m)log2 m + (&lgr;a(m) + n)log(n + m)) where &lgr;s(m) is the (almost-linear) maximum length of (m, s) Davenport-Schinzel sequences, and where s is a fixed parameter, depending on the shape of the given arcs. Another case where we can detect an intersection in close to linear time is when the union of the arcs of &Ggr; and the union of the arcs of &Ggr;' are both connected. (ii) In the most general case, we can detect an intersection in time &Ogr; ((m√&lgr;s(n) + n√&lgr;s(m))log1.5(m+n)). For several special but useful cases, in which many faces in the arrangements of &Ggr; and &Ggr;' can be computed efficiently, we obtain randomized algorithms which are better than the general algorithm. In particular when all arcs in &Ggr; and &Ggr;' are line segments, we obtain a randomized &Ogr;((m+n)4/3+c) intersection detection algorithm. We apply the algorithm in (i) to obtain an &Ogr;(&lgr;s(n) log2 n) algorithm (for some small s 0) for planning the motion of an n-sided simple polygon around a right-angle corner in a corridor, improving a previous &Ogr;(n2) algorithm of [MY86], and to derive an efficient technique for fast collision detection for a simple polygon moving (translating and rotating) in the plane along a prescribed path.