144 Chapter 4 Matrices, Vector Algebra, and Transformations
and the z-axis:
T(v
3
) = s
z
v
3
= s
z
[
0010
]
=
[
00s
z
0
]
As for the origin O, it remains unchanged, as it is the center of scaling:
T(O) = O
=
[
0001
]
We then construct a matrix whose rows consist of the transformed basis vectors
and origin, which implements this simple scaling about the origin:
T
s
x
,s
y
,s
z
=
T(v
1
)
T(v
2
)
T(v
3
)
T(O)
=
s
x
000
0 s
y
00
00s
z
0
0001
In this approach, uniform scaling about a point Q other than the origin requires
three steps:
Step 1. Translation to the origin (i.e., by ([
000
]− Q)).
Step 2. Apply the scaling about the origin, as above.
Step 3. Translation back by the inverse of step 1.
Note that this sequence of operations (the two “extra” translations) is something
we explicitly sought to avoid in our discussion of rotations. We present this simple
approach because it is frequently the case that scaling is done about the origin. We
mention the necessity of the three-step scheme for scaling about a point other than
the origin in order to motivate the next section, in which we describe a more general
method.
General Scaling
The more general approach to scaling allows for scaling about an arbitrary point,
along a direction specified by an arbitrary vector, and by a specified (scalar) factor.