Graphics Reference
In-Depth Information
8.4
Affine Transformations
The three transformation operators we have discussed are examples of affine
transformations . In general, an affine transformation transforms parallel lines
to parallel lines, and finite points to finite points. These types of transformations
do not unproportionately warp geometric objects, and they do not introduce or
reduce geometric elements (i.e., vertices and edges). These characteristics are
intuitive to humans and are easier for humans to relate to.
Affine transformations are linear , or in simpler terms, they leave geometric
relationships unchanged. For example, a midpoint before a transformation opera-
tion will be a midpoint after a transformation. An intuitive way to understand this
is: if an operator works on a point, then the operator also works on an object that
is defined by a group of points. For example, if an operator operates properly on
a vertex position, then this operator would operate properly on a triangle (defined
by a group of three vertices), and this same operator would also operate properly
on a teapot that is defined by a group of triangles. This linearity is an important
property. In our discussions, we have taken advantage of this linearity property
by first studying the effect of each operator on one vertex position, and then two,
before generalizing to geometric shapes. In subsequent chapters, we will continue
to examine transformation operations based on simple vertex positions and then
generalize our learning.
As we can see, the three operators we have studied are indeed very simple. It
is interesting that highly complex graphical environments can be defined and sup-
ported based on these operators. In the next few chapters, we will learn to combine
these operators in non-trivial manners to accomplish more complex transforma-
tions. It is important that we review some of the fundamental mathematics before
we generalize the utilization of these simple operators. In the next section, we
will review some formal notations that will help us further discuss the transfor-
mation operators. We want to examine how to generalize the utilization of these
operators and, more specifically, how to do the following.
• Apply these operators on more interesting geometric objects we have worked
with (e.g., circles and rectangles).
• Combine these operators to accomplish interesting effects.
• Work with graphics APIs in using these operators in our source code library.
Once again, for brevity and readability, in the rest of the topic we may not
explicitly list the parameters of the transformation operators. For example, we
will use T to mean T
(
t x ,
t y )
, S to represent S
(
s x ,
s y )
,and R to mean R
( θ )
.Before
Search WWH ::




Custom Search