Polygon Clipping

[Hill: p. 202-204. Foley & van Dam: p. 124-127]
The Sutherland-Hodgman algorithm can be used to clip any polygon (convex or concave) against any convex clipping polygon. The algorithm clips against one edge at a time, producing a new vertex list each time. The following figure assumes the most common case, a rectangular clipping window.

The algorithm can be summarized as follows:

  for each side of clipping window
     for each edge of polygon
        output points based upon the following table
Example






Using Outcodes for Trivial Accept and Reject

[Hill: p. 96-98]
In many cases, two trivial tests can be used to quickly determine whether a polygon is completely inside or outside the viewing window. This then allows us to skip the above clipping procedure.  The trivial tests require first computing outcodes.

A vertex outcode consists of four bits: TBRL, where:

Trivial accept:    all vertices are inside (all outcodes are 0000)
Trivial reject:     all vertices are outside with respect to any given side(bitwise AND is not 0000)