QTMAT Name
QTMAT
Author
Craig B. Markwardt, NASA/GSFC Code 662, Greenbelt, MD 20770
craigm@lheamail.gsfc.nasa.gov
UPDATED VERSIONs can be found on my WEB PAGE:
http://cow.physics.wisc.edu/~craigm/idl/idl.html
Purpose
Find direction cosine matrix from quaternion(s)
Major Topics
Geometry
Calling Sequence
MATRIX = QTMAT(Q)
Description
The function QTMAT computes one or more direction cosine matrices
(i.e., rotation matrices) from unit quaternions.
The usage of the resulting matrix on a 3-vector X is either
MATRIX # X, or MATRIX ## X, depdending on the meaning of the
rotation (i.e., body-fixed or coordinate-fixed, see QTVROT).
QTFIND and QTMAT are functional inverses: use QTFIND to convert a
known direction cosine matrix to a new quaternion; use QTMAT to
convert a known quaternion to matrix representation.
Conventions for storing quaternions vary in the literature and from
library to library. This library uses the convention that the
first three components of each quaternion are the 3-vector axis of
rotation, and the 4th component is the rotation angle. Expressed
in formulae, a single quaternion is given by:
Q(0:2) = [VX, VY, VZ]*SIN(PHI/2)
Q(3) = COS(PHI/2)
where PHI is the rotation angle, and VAXIS = [VX, VY, VZ] is the
rotation eigen axis expressed as a unit vector. This library
accepts quaternions of both signs, but by preference returns
quaternions with a positive 4th component.
Inputs
Q - array of one or more unit quaternions. For a single
quaternion, Q should be a 4-vector. For N quaternions, Q
should be a 4xN array.
Keywords
INVERT - if set, compute the matrix of QTINV(Q) instead Q
Returns
The direction cosine matrices. For a single input quaternion,
retuns a 3x3 array. For N input quaternions, returns a 3x3xN
array. Keyword Parameters
NONE Example
print, qtmat(qtcompose([0d,1,0], !dpi/4))
0.70710678 0.0000000 0.70710678
0.0000000 1.0000000 0.0000000
-0.70710678 0.0000000 0.70710678
Form a quaternion composed of a rotation of !dpi/4 radians around
the axis [0,1,0], and then print the corresponding rotation
matrix. See Also
QTANG, QTAXIS, QTCOMPOSE, QTERP, QTEXP, QTFIND, QTINV, QTLOG,
QTMAT, QTMULT, QTPOW, QTVROT
Modification History
Written, July 2001, CM
Documented, Dec 2001, CM
Documentation clarifications, 28 Jan 2002, CM
Allow multiple quaternions, 28 Jan 2002, CM
Usage message, error checking, 15 Mar 2002, CM
Add INVERT keyword, 05 Oct 2007, CM