Polygon Clipping

[Angel3: 379-382]
[FVFH: 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

[Angel3: 375-377]
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)