Rigid Body Transformations

The first modeling transformations that we will consider are called the rigid-body, or Euclidean transfromations. A unique property of these transfromations is that they preserve the shape of the objects that they act on.

Points

We start by discussing the representation that we will use for the points that we use in our three-dimensional models. We will consider points as column vectors. Thus a typical point with coordinates (x, y, z) is represented as:
The is not the only possible representation. You may encounter textbooks that consider points as row vectors. What is most important is that you select a consistent represention.

Relationships between Vector and Matrix Algebra

You've probably been exposed to some of the important operators of vector algebra in previous courses. These include vector addition, the vector dot product, and the vector cross product. Here I will discuss an equivalent set of matrix operators.

We begin with the dot product. This operation acts on two vectors and returns a scalar. Geometrically, this operation can be described as a projection of one vector onto another. The dot product has the following matrix formulation.

The vector cross product also acts on two vectors, but it returns a third vector. Geometrically, this new vector is constructed such that its projection onto either of the two input vectors is zero.

Consider what this means for a moment. In order for one vector to project onto another with a length of zero, it must either have a length of zero, or be perpendicular to the second vector. Yet the vector generated by the cross-product operator is perpendicular to two vectors. Since the two input vectors define a plane in space, the vector that results from the cross product operation is perpendicular, or normal to this plane.

For any palne there are two possible choices of a normal vector, one on each side of a plane. The cross product is defined to be the one of these two vectors where the motion form the tip of the first input vector to the tip of the second input vector is in a counter-clockwise direction when observed from the side of the normal. This is just a restatement of the right-hand rule that you are familiar with.


Translations

As I mentioned last lecture, objects are usually defined relative to their own coordinate system. We can translate points in space to new positions by adding offsets to their coordinates, as shown in the following vector equation.
The following figure shows the effect of translating a teapot.

Rotations

Rotations in three-dimensions are considerably more complicated than two-dimensional rotations. In general, rotations are specified by a rotation axis and an angle. In two-dimensions there is only one choice of a rotation axis that leaves points in the plane.

There are many different ways to present rotations. I will use a different approach than that used in the book. In the book all possible rotations are treated as the compostion of three canonical rotations, one about the x-axis, one abount the y-axis and one about the z-axis. In order to use this model you need to do the following. Memorize the three canonical rotations, which aside from the signs of the sines, isn't too hard. An then you have to go through a series of rotations which move the desired rotation axis onto one of your canonical rotations and then you have to rotate it back without introducing any extraneous twists. This is a difficult and error-prone process. But worst of all it is ambiguous. There exist several different combinations canonical rotations that result in the same overall result.

There is another way that I beleive is both easier to understand and provides you with more insights into what rotation is really about. Instead of specifying a rotation by a series of canonical angles, instead we will specify an axis of rotation and a single angle.

The normalized vector a specifies our axis of rotation (what does it mean to be normalized). The angle theta gives the amount of the rotation about this axis. At first you might ask "How am I going to remeber this equation?". However, once you understand the geometry of rotation, the equation will seem obvious.

The basic idea is that any rotation can be decomposed into weighted contributions from three different vectors. These vectors are rotation axis, a vector that is perpendicular to both the rotation axis and the point being rotated, and the point itself. These vectors correspond to the each respective term in the expression.

Let's look at each term in detail. First we'll see why the Symmetric matrix of a vector generates a vector in the the direction of the axis.

Next, consider how the Skew symmetric matrix of a vector genrates a vector that is perpindicular to both the axis and it's input vector.

From the idenity matrix in the third term it is easy to see how it will generate a vector in the same direction as the input vector.

We can now test our new found knowledge. Forst consider a rotation by 0.

We can also use this equation to derive all of the rotation matrices given in the book. For instance, here is a rotation about the x-axis.

Next, we can derive the rotation about the y-axis.

Last, we can find the matrix for rotations about the z-axis.

This approach to (or parameterization of) rotations is completely general and unambiguous. If you grasp this simple concept and understand the geometry, then don't be surprized if, in a few years, everyone is coming to you to compute their rotation matices. They will also drop their jaws in amazement, when you just write down the 3x3 marix.


This page last modified Tuesday, October 15, 1996