red-blue intersection detection algorithms, with applications to motion planning and collision detection
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 )log 2 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 ))log 1.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 ) log 2 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; ( n 2 ) 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.
intersection detection algorithm applications motion motion planning plan collision detection collect shape efficiency region timing log sequence case general arrangement randomization randomized algorithm segmentation polygon