2 - Polygon Partitioning
Published online by Cambridge University Press: 05 June 2012
Summary
In this short chapter we explore other types of polygon partitions: partitions into monotone polygons (Section 2.1), into trapezoids (Section 2.2); into “monotone mountains” (Section 2.3), and into convex polygons (Section 2.5). Our primary motivation is to speed up the triangulation algorithm presented in the previous chapter, but these partitions have many applications and are of interest in their own right. One application of convex partitions is character recognition: Optically scanned characters can be represented as polygons (sometimes with polygonal holes) and partitioned into convex pieces, and the resulting structures can be matched against a database of shapes to identify the characters (Feng & Pavlidis 1975). In addition, because so many computations are easier on convex polygons (intersection with obstacles or with light rays, finding the distance to a line, determining if a point is inside), it often pays to first partition a complex shape into convex pieces.
This chapter contains no implementations (but suggests some as exercises).
MONOTONE PARTITIONING
We presented an O(n2) triangulation algorithm in Section 1.4. Further improvements will require organizing the computation more intelligently, so that each diagonal can be found in sublinear time. There are now many algorithms that achieve O(n logn) time, averaging O(logn) work per diagonal. The first was due to Garey, Johnson, Preparata & Tarjan (1978). Although one might expect an O(n log n) algorithm to find each diagonal by an O(logn) binary search, that is not in fact the way their algorithm works.
- Type
- Chapter
- Information
- Computational Geometry in C , pp. 44 - 62Publisher: Cambridge University PressPrint publication year: 1998