ABSTRACT

This chapter begins to explore geometric types and techniques in code that disrupt these expectations. A transformation in code is a compact and strikingly elegant mechanism for manipulating geometry, and is based upon the matrix: a mathematical construct that is central to computational geometry. The matrix is a mathematically elegant and computationally efficient structure, and forms the basis of geometric transformations. Linear transformations represent the most constrained category, and include elemental transforms such as rotation, scaling, shearing, and reflection. The dominant technique in computer graphics to represent the broader class of affine transformations as matrices, and thereby to maintain a succinct representation in code, is to elevate the square matrix to have an added dimension on each side. In many graphic software systems, finding the intersection of any combination of arbitrary geometries is not a job left to the geometries themselves, but rather to a third-party: an intersector.