An algorithm to minimally decompose a rectilinear figure into rectangles (abstract only)

  • Authors:
  • R. Shantaram;John Stewart

  • Affiliations:
  • Computer Science Department, The University of Michigan, Flint;Computer Science Department, The University of Michigan, Flint

  • Venue:
  • CSC '87 Proceedings of the 15th annual conference on Computer Science
  • Year:
  • 1987

Quantified Score

Hi-index 0.00

Visualization

Abstract

In computer modeling of geometrical objects it is essential to be able to decompose a complex object into easily managed 'primitives'. For example a rectangular block could be considered a primitive in solid geometry modeling and more complex objects with planar faces could be put together with such blocks. A block itself is obtained by sweeping a rectangle in a direction normal to it. Thus solid objects generated by sweeping simple closed polygons ( the so called extrudes) may be obtained by first decomposing the polygon into a union of (not necessarily disjoint) rectangles, extruding them and finally unioning the resulting blocks. Other Boolean operations such as intersection and difference may have to be employed to build a specified object. This is approach used, for example, in GMSOLID - a geometry modeling software package developed at General Motors. See [1].In this paper we develop an algorithm for decomposing a simple rectilinear polygon into a minimal set of non-overlapping rectangles. Here simple means non-self-intersecting and rectilinear denotes that the sides of the polygon are parallel to the coordinate axes. Throughout this paper the term polygon refers to such a polygon. Further applications of such a decomposition are to be found in IC mask-making and pattern generation. See [3], [4]. Minimality is interesting not only from the optimal point of view but also because the solution seems to involve a degree of symmetry of the given polygon. For other algorithms that treat this problem see [2], [5], [6].Our approach to the problem is by means identifying and analyzing the “left turns” in the given polygon. Simply put, the polygon is traversed in a clockwise fashion and each vertex is labeled as a left turn or a right turn. Since the only polygon with no left turns is a rectangle the presence and the configuration of left turns provides a clue to the degree of departure from the desired final decomposition consisting only of rectangles. The left turns are eliminated by adding edges to the interior of the polygon in a fashion such that the addition of an edge decreases the number of left turns. The problem is thus reduced to the determination of the smallest number of edges which results in only right turns. This is accomplished by classifying edges into three categories labeled DLT, SLT and NLT. It is then shown that the minimum decomposition is achieved by choosing the largest set of mutually non-intersecting DLT edges. An efficient algorithm of complexity O(n**2) is developed to do this. Some implementation remarks are provided.