Re: Re: Rotation3D, MatrixRotation3D ?

• To: mathgroup at smc.vnet.net
• Subject: [mg30419] Re: [mg30398] Re: Rotation3D, MatrixRotation3D ?
• From: Andrzej Kozlowski <andrzej at tuins.ac.jp>
• Date: Fri, 17 Aug 2001 03:09:57 -0400 (EDT)
• Sender: owner-wri-mathgroup at wolfram.com

```On Wednesday, August 15, 2001, at 02:04  PM, Gianluca Cruciani wrote:

> "ojg" <ole.jonny.gjoen at hitecvision.com> wrote in message
> news:<9lalnl\$cd3\$1 at smc.vnet.net>...
>> Question regarding rotations.
>>
>> Some of the documentation found regarding this is not as far as I can
>> see
>> complete in the documentation, at least the subject is difficult
>> enough to
>> make me unsure once not 100% clear:)
>>
>> Fist, what are the defined "euler angles" in mathematica, and in what
>> order
>> are they applied?
>>
>
> There are a number of conventions about Euler angles, I know at least
> two of them. You can read the one used by Mathematica4 in the Help
> Browser, searching for the "Geometry`Rotations`" package.

???

Euler angles are based on a simple mathematical idea of which, for some
reason, physicists make a great deal more than it is worth.

To use Euler angles and rotation matrices we load the package
"Geometry`Rotations`" (which of course Johnny must have known about
otherwise he would not have asked his question. And he is quite right
that the explanation of this matter in the Help Browser is virtually
non-existent).

Needs["Geometry`Rotations`"]

Let's define three matrices.

\[CapitalPhi] = RotationMatrix3D[-\[Phi], 0, 0]; \[CapitalTheta] =
RotationMatrix3D[0, -\[Theta], 0]; \[CapitalPsi] =
RotationMatrix3D[-\[Psi], 0, 0];

The main point about Euler angles is the following theorem due to, not
surprisingly,  Euler:

Theorem (Euler):

Any special orthogonal matrix B can be expressed in the form:

B = MatrixForm[\[CapitalPhi]].MatrixForm[\[CapitalTheta]].MatrixForm[\
\[CapitalPsi]]

where 0<\[Phi]<0,0<\[Theta]<0,-Pi<\[Psi]<0. If \[Theta] is not 0 than
the expression is unique.

(\[Phi],\[Theta],\[Psi] are the Euler angles).

This is simply a statement in linear algebra and can be proved without
any mention of rotations (see below). It can be interpreted as a
there are various conventions concerning which the letters denoting the
angles , their order , signs of angles etc). One way is by using a fixed
coordinate system. In this interpretation the statement asserts that any
rotation can be expressed as a product of three rotations, about (say)
the z axis, x axis and again z-axis. The rotations are composed in the
same order as the matrices. The other interpretation, which seems to be
popular with physicists, uses variable coordinates, or what they call
"body coordinates". If you use this interpretation the order in which
rotations are applied is the reverse of the order in which the matrices
are multiplied.

Of course the rotations need not involve coordinate axes at all. In
general any rotation can be expressed as a product of three rotations
about just two (not three!) perpendicular axes passing through the
center of the rotation.

The real reason why all this works can be found in the combination of
the following facts. First, the Lie algebra su(2) (skew hermitian
matrices with trace 0) of the Lie group SU(2) (special unitary matrices)
is a three dimensional vector space and thus has a basis consisting of
three vectors, say v1, v2, v3. The exponential map su(2)->SU(2) is
surjective, so every element of SU(2) can be written as a product
MatrixExp[\[Phi] v1]*MatrixExp[\[Theta] v2]**MatrixExp[\[Psi]*v3]. The
real numbers \[Phi],\[Theta],\[Psi] are sometimes called the Euler
angles in SU(2).
Finally the natural homomorphism SU(2)->SO(3) is onto (a double covering
in fact)  so we get the usual Euler angles in SO(3) from those in SO(2).

Andrzej Kozlowski
Toyama International University
JAPAN
http://platon.c.u-tokyo.ac.jp/andrzej/

```

• Prev by Date: Re: Spinshow Output to Animated GIF
• Next by Date: Re: Rotation3D, MatrixRotation3D ?
• Previous by thread: RE: Rotation3D, MatrixRotation3D ?
• Next by thread: Re: Rotation3D, MatrixRotation3D ?