The Mathematica Journal
Departments
Current Issue
Tricks of the Trade
In and Out
Riemann Surfaces IIc
The Mathematica Programmer
New Products
New Publications
Classifieds
Calendar
News Bulletins
Library
Editor's Pick
Mailbox
FAQ
Write Us
About the Journal
Staff and Contributors
Submissions
Subscriptions
Advertising
Back Issues
Home
Download This Issue

Rotations

A rotation R in three-dimensional space is an orthogonal (i.e., length-preserving) linear transformation with determinant plus one. It is a fact that 1 is always an eigenvalue of such a map R, [4], so there has to be a nonzero vector n with R(n) = n. There is no loss in taking n to be a unit vector (normalize if you have to!).

In other words, every rotation is a rotation about a unit axis, the axis being the "line" through n. Now select unit vectors u and v with crossproduct(u,v) = n and R(u) = cos(t)u + sin(t)v and R(v) = -sin(t)u + cos(t)v. We see a rotation is determined by the data (t, n) and we write R = to so designate. Note that only vectors orthogonal to n are actually rotated by .

For example, consider an airplane with an inertial coordinate system put at the center of gravity of the plane. Say the x-axis goes from tail to nose, the y-axis goes across the wings, and the z-axis penetrates the airplane vertically. Then a rotation about the x-axis is called a "roll," about the y-axis is called a "pitch," and about the z-axis is called a "yaw." If you yaw through degrees and then roll through degrees, is that the same as rolling through degrees and then yawing through degrees?

More generally, if and are rotations and they are performed sequentially, does the order matter and is there a single rotation that yields the same maneuver? Even more generally, what if we have a finite sequence of rotations ,..., ? There is a quick answer to the second question.

Since the rotations form the subgroup SO(3) of the orthogonal group O(3), yes, the composition (i.e., sequential application) of rotations is a rotation. But what is the angle and axis of the composite? The matrix representation of the rotation , say mat(), where n = (x, y, z), has been computed relative to the standard basis of (and is of some interest in robotics, [5]). Here is the matrix.

But, given this matrix (say numerically) how do you see the angle t and the axis n? The authors in [6] have been quoted as saying "The greatest strength of quaternions is their ability to represent rotations." It is this theme we develop to complete our paper. We could use matrix multiplication to answer our questions about rotations, but it is much easier and much more efficient (as well as elegant) to use quaternion multiplication.


Copyright © 2002 Wolfram Media, Inc. All rights reserved.

[Article Index][Prev Page][Next Page]