Previous: matxdm Up: ../plot79_m.html Next: matxid
SUBROUTINE MATXEU (E1,E2,E3)
C$ (Transform -- Euler Angles)
C$ Compute a rotation matrix (T = R1*R2*R3) defined by 3 Euler
C$ angles, and right multiply the stored transformation matrix
C$ with it.
C$
C$ MATXSM() sets the stored matrix to a starting value,
C$ MATXIM() inquires the current value, and MATXIO() selects
C$ printing of intermediate matrices.
C$
C$ Euler angles have several definitions in the literature,
C$ and the one used here is taken from the well-known book by
C$ Herbert Goldstein, "Classical Mechanics", Addison-Wesley
C$ (1950).
C$
C$ The arguments are:
C$
C$ E1,E2,E3.......Euler angles (degrees) of rotation. These
C$ are usually called (phi, theta, psi) or
C$ (alpha, beta, gamma) by most authors. The
C$ angles E1 and E2 are identical to the
C$ spherical polar coordinate angles phi and
C$ theta.
C$
C$ The rotations are made in three steps to get from (x,y,z)
C$ coordinates to (x',y',z') coordinates in the rotated
C$ system. The coordinate systems are RIGHT-HANDED, and
C$ POSITIVE rotations about an axis are COUNTERCLOCKWISE when
C$ viewed down the POSITIVE part of the axis toward the
C$ origin.
C$
C$ In the first step, a rotation in the X-Y plane by E1 is
C$ made about the Z axis, transforming the (x,y,z) system into
C$ (x1,y1,z).
C$
C$ In the second step, a rotation in the Y1-Z plane by E2 is
C$ made about the X1 axis, transforming (x1,y1,z) into
C$ (x1,y2,z1).
C$
C$ In the third and final step, a rotation in the X1-Y2 plane
C$ by E3 is made about the Z1 axis, transforming (x1,y2,z1)
C$ into (x3,y3,z1) = (x',y',z').
C$
C$ Since rotation matrices are orthogonal (i.e. T(transpose) =
C$ T(inverse)), the inverse relation is given by
C$
C$ (x,y,z,h) = (x',y',z',h')T(transpose)
C$
C$ Some examples are:
C$
C$ E1 E2 E3 ( x' y' z' h')
C$ ============= ================
C$ 0 0 0 ( x y z h)
C$ 90 0 0 (-y x z h)
C$ 0 90 0 ( x -z y h)
C$ 0 0 90 (-y x z h) (same as 90 0 0)
C$ -90 0 0 ( y -x z h)
C$ 0 -90 0 ( x z -y h)
C$ 0 0 -90 ( y -x z h) (same as -90 0 0)
C$ ============= ================
C$
C$ (08-FEB-90)