A rectilinear polygon is a polygon all of whose edge intersections are at right angles. Thus the interior angle at each vertex is either 90° or 270°. Rectilinear polygons are a special case of isothetic polygons.
In many cases another definition is preferable: a rectilinear polygon is a polygon with sides parallel to the axes of Cartesian coordinates. The distinction becomes crucial when spoken about sets of polygons: the latter definition would imply that sides of all polygons in the set are aligned with the same coordinate axes. Within the framework of the second definition it is natural to speak of horizontal edges and vertical edges of a rectilinear polygon.
Rectilinear polygons are also known as orthogonal polygons. Other terms in use are iso-oriented, axis-aligned, and axis-oriented polygons. These adjectives are less confusing when the polygons of this type are rectangles, and the term axis-aligned rectangle is preferred, although orthogonal rectangle and rectilinear rectangle are in use as well.
The importance of the class of rectilinear polygons comes from the following.
- They are convenient for the representation of shapes in integrated circuit mask layouts due to their simplicity for design and manufacturing. Many manufactured objects result in orthogonal polygons.
- Problems in computational geometry stated in terms of polygons often allow for more efficient algorithms when restricted to orthogonal polygons. An example is provided by the art gallery theorem for orthogonal polygons, which leads to more efficient guard coverage than is possible for arbitrary polygons.
A rectilinear polygon has edges of two types: horizontal and vertical.
- Lemma: The number of horizontal edges is equal to the number of vertical edges (because every horizontal edge is followed by a vertical edge and vice versa).
- Corollary: Orthogonal polygons have an even number of edges.
A rectilinear polygon has corners of two types: corners in which the smaller angle (90°) is interior to the polygon are called convex and corners in which the larger angle (270°) is interior are called concave.
A knob is an edge whose two endpoints are convex corners. An antiknob is an edge whose two endpoints are concave corners.
Simple rectilinear polygon
A rectilinear polygon that is also simple is also called hole-free because it has no holes - only a single continuous boundary. It has several interesting properties:
- The number of convex corners is four more than the number of concave corners. To see why, imagine that you traverse the boundary of the polygon clockwise (with your right hand inside the polygon and your left hand outside). At a convex corner, you turn 90° right; at any concave corner, you turn 90° left. Finally you must make an entire 360° turn and come back to the original point; hence the number of right turns must be 4 more than the number of left turns.
- Corollary: every rectilinear polygon has at least 4 convex corners.
- The number of knobs (sides connecting two convex corners) is four more than the number of antiknobs (sides connecting two concave corners).To see why, let X be the number of convex corners and Y the number of concave corners. By the previous fact, X=Y+4. Let XX the number of convex corners followed by a convex corner, XY the number of convex corners followed by a concave corner, YX and YY defined analogously. Then obviously X=XX+XY=XX+YX and Y=XY+YY=YX+YY. Hence XX=X-XY=X-(Y-YY)=YY+(X-Y)=YY+4.
- Corollary: every rectilinear polygon has at least 4 knobs.
Squares and rectangles in a rectilinear polygon
A rectilinear polygon can be covered by a finite number of squares or rectangles with edges parallel to the edges of the polygon (see Polygon covering). It is possible to distinguish several types of squares/rectangles contained in a certain rectilinear polygon P:
A maximal square in a polygon P is a square in P which is not contained in any other square in P. Similarly, a maximal rectangle is a rectangle not contained in any other rectangle in P.
A square s is maximal in P if each pair of adjacent edges of s intersects the boundary of P. The proof of both sides is by contradiction:
- If a certain adjacent pair in s does not intersect the boundary of P, then this pair be pushed further towards the boundary, so s is not maximal.
- If s is not maximal in P, then there is a larger square in P containing s; the interior of this larger square contains a pair of adjacent edges of s, hence this pair does not intersect the boundary of P.
The first direction is also true for rectangles, i.e.: If a rectangle s is maximal, then each pair of adjacent edges of s intersects the boundary of P. The second direction is not necessarily true: a rectangle can intersect the boundary of P in even 3 adjacent sides and still not be maximal as it can be stretched in the 4th side.
Corollary: every maximal square/rectangle in P has at least two points, on two opposite edges, that intersect the boundary of P.
A corner square is a maximal square s in a polygon P such that at least one corner of s overlaps a convex corner of P. For every convex corner, there is exactly one maximal (corner) square covering it, but a single maximal square may cover more than one corner. For every corner, there may by many different maximal rectangles covering it.
A separator square in a polygon P is a square s in P such that P−s is not connected.
- Lemma: in a simple rectilinear polygon, a maximal square that does not contain a knob is a separator. A square containing a knob may or may not be a separator. The number of different separator squares may be infinite and even uncountable. For example, in a rectangle, every maximal square not touching one of the shorter sides is a separator.
A continuator square is a square s in a polygon P such that the intersection between the boundary of s and the boundary of P is continuous. A maximal continuator is always a corner square. Moreover, a maximal continuator always contains a knob. Hence the number of continuators is always finite and bounded by the number of knobs.
There are several different types of continuators, based on the number of knobs they contain and their internal structure (see figure). The balcony of a continuator is defined as its points that are not covered by any other maximal square (see figure).
No square can be both a continuator and a separator. In general polygons, there may be squares that are neither continuators nor separators, but in simple polygons this cannot happen:
- In a simple rectilinear polygon, every maximal square is either a separator or a continuator. This is also true for rectangles: every maximal rectangle is either a separator or a continuator.
- In a simple rectilinear polygon which is not a square, there are at least two continuators.
There is an interesting analogy between maximal squares in a simple polygon and nodes in a tree: a continuator is analogous to a leaf node and a separator is analogous to an internal node.
A golygon is a rectilinear polygon whose side lengths in sequence are consecutive integers.
A monotone rectilinear polygon is a monotone polygon which is also rectilinear.
A T-square is a fractal generated from a sequence of rectilinear polyons with interesting properties.
Algorithmic problems involving rectilinear polygons
Most of them may be stated for general polygons as well, but expectation of more efficient algorithms warrants a separate consideration
- Orthogonal range searching
- Orthogonal convex hull construction
- Boolean operations on polygons for orthogonal polygons (e.g., intersection and union)
- Motion planning/path planning/routing among rectilinear obstacles
- Visibility problems (Illumination problems)
- Maximal empty rectangle
Of particular interest to rectilinear polygons are problems of decomposing a given rectilinear polygon to simple units - usually rectangles or squares. There are several types of decomposition problems:
- In covering problems, the goal is to find a smallest set of units (squares or rectangles) whose union is equal to the polygon. The units may overlap. See Polygon covering.
- In packing problems, the goal is to find a largest set of non-overlapping units whose union is contained in the polygon. The union may be smaller than the polygon.
- In partitioning problems, the goal is to find a smallest set of non-overlapping units whose union is exactly equal to the polygon. See Polygon partition.
- Franco P. Preparata and Michael Ian Shamos (1985). Computational Geometry - An Introduction. Springer. 1st edition: ISBN 0-387-96131-3; 2nd printing, corrected and expanded, 1988: ISBN 3-540-96131-3., chapter 8: "The Geometry of Rectangles"
- Bar-Yehuda, R.; Ben-Hanoch, E. (1996). "A Linear-Time Algorithm for Covering Simple Polygons with Similar Rectangles". International Journal of Computational Geometry & Applications. 06: 79. doi:10.1142/S021819599600006X.
- "Counting pairs of bits". Stack Exchange. November 17, 2013.
- Albertson, M. O.; o’Keefe, C. J. (1981). "Covering Regions with Squares". SIAM Journal on Algebraic and Discrete Methods. 2 (3): 240. doi:10.1137/0602026.