Ed,

> I think we are saying the same thing here. When I say the axes are kept
fixed, I mean they are the screen axes. When you say "new axis" you do not
mean that the axis has been rotated, but that it passes through the
molecule differently. Or maybe not . . .

No I mean exactly that.  What I'm saying is that there exist two
fundamentally different interpretations of the matrix equation I wrote:
'fixed axis' and 'rotated (new) axis'.  We at least agree that in the
'fixed' axis interpretation the axes are the fixed screen axes.  However in
the 'rotated' axis description that you find in all the documentation and
papers the initial y axis is rotated by the 1st z rotation to become the
'new y' axis and then the initial z axis is rotated by the new y axis
rotation to become 'new z' and so on.  So I do mean that the axes are
rotated (and as I said everything is relative to the fixed screen axes as
basis vectors).  The rotated axes continue to pass through the similarly
rotated molecule in the _same_ way, but really that's irrelevant and one
should forget about the molecular axes.  Furthermore I do mean that
subsequent rotations are about these rotated axes - and that this mad way
of thinking about it is not only extremely confusing but also totally
unnecessary!


> Looking at the math, it depends whether you multiply from right to left or
> left to right
>
>
>
>    x' = Rz(a) Ry(b) Rz(g) x
> or
>
>    x' = Rz(a) (Ry(b) (Rz(g) x))
>
> Mathematically this is easiest going from right to left: apply the gamma
> rotation to the coordinates, then the beta rotation to that result, then
> the alpha rotation to that result. This way all three rotations are simple
> rotations about the principle screen axes.
> If we insist on thinking about it left to right, then the leftmost
> operator operates on the other two (and the middle operates on the
> right-most) and so by the time they get applied they are "new".
> But I'm not sure it is even possible to do the math that way. As far as I
> see it, the only mathematical interpretation of this equation is first
> rotate the coordinates by gamma about z, then rotate the result by beta
> about y, then rotate the result by alpha about z.
> Sure, you can multiply the three matrices together and operate on the
> coordinates with that, but i don't see how that corresponds to "first
> rotate by alpha around z then . . .)"
>
> And since the operators don't commute, you can't factor it in like:
>
> Rz(a) (Ry(b) (Rz(g) x))
>
>        !=  Rz(a).Ry(b).Rz(g) x)  .  (Rz(a).Ry(b) x) .  (Rz(a)  x)
>              gamma@newZ . x           beta@newY . x    [email protected]
>             (or any such nonsense)
>
> so I wonder if you could even come up with mathematical definitions of new
> Y and new Z.
> However this looks very simple with the aforementioned Eulerian navigator
> toy: if you start rotating the outside ring and work inwards, each time you
> are rotating about a previously rotated axis, and one could surely
> calculate what those new axes are in terms of the rotations already
> applied. But it sure is simpler going the other way!
>
>
Sure you can come up with a math description of the 'new' axis
interpretation - see attached proof.

Hopefully the complexity of this will convince you that the 'new' axis way
of thinking about this IMO is totally confusing.  My beef is that it is
this insanely complicated way of thinking about this that appears in all
the documentation, so no wonder people are confused by it!

Cheers

-- Ian

The goal of this section is to demonstrate that the Eulerian rotation matrix, for describing the arbitrary rotation of a rigid-body in the 'CCP4' convention, can be expressed in two ways which are completely equivalent, and to derive the form of the component matrices in each case:

 

a) Using rotation axes which are fixed in the observer's (world) frame of reference:

 

Step 1: Rotate the object through an angle g about the Z axis: R(Z,g).

Step 2: Rotate through b about the Y axis: R(Y,b).

Step 3: Rotate through a about the Z axis: R(Z,a).

 

Therefore the product matrix in this case is:

 

                        R(a,b,g) = R(Z,a) R(Y,b) R(Z,g)

 

where:

                     [ 1    0       0    ]

           R(Z,a)  =   [ 0  cos(a) -sin(a) ]

                     [ 0  sin(a)  cos(a) ]

 

                     [  cos(b) 0  sin(b) ]

           R(Y,b)  =   [    0    1    0    ]

                     [ -sin(b) 0  cos(b) ]

 

                     [ 1    0       0   ]

           R(Z,g)  =   [ 0  cos(g) -sin(g) ]

                     [ 0  sin(g)  cos(g) ]

 

b) Using rotation axes which are fixed in the object's frame of reference, and consequently rotating in the observer's (world) frame of reference:

 

Step 1: Rotate the object through an angle a about the Z axis: R(Z,a).

Step 2: Rotate through b about the rotated Y axis (Y1): R(Y1,b;a).

Step 3: Rotate through g about the rotated Z axis (Z2): R(Z2,g;a,b).

 

Therefore the product matrix in this case is:

 

                        R'(a,b,g) = R(Z2,g;a,b) R(Y1,b;a) R(Z,a)

 

Note that the matrix R(Y1,b;a) is rotating the object about an axis that has already been rotated through a, and therefore it is function of both a and b.  Similarly the matrix R(Z2,g;a,b) is rotating the object about an axis that has already been rotated through a and b and is therefore a function of a, b and g.

 

We now demonstrate that these two descriptions of the total rotation are algebraically identical, and to do this we need to express the matrices R(Y1,b;a) and R(Z2,g;a,b) in simplified forms, i.e. purely in terms of the simple matrices R(Z,a), R(Y,b) and R(Z,g) which are each functions of only one angle.  First, in order to obtain a simplified form of the R(Y1,b;a) matrix we observe that it is equivalent to the product of three operations: first undo the previous operation R(Z,a) (i.e. using its inverse or transpose) so we are back in the observer's frame; then perform the rotation through b, but this time about the fixed (observer's) Y axis instead of the rotated (object's) Y1 axis; then redo the operation R(Z,a) so we are back again in the frame rotated by a about the Z axis:

 

                        R(Y1,b;a) = R(Z,a) R(Y,b) RT(Z,a)

 

Similarly in order to obtain the simplified form of the R(Z2,g;a,b) matrix we observe that it is equivalent the product of five operations: undo both the previous operations R(Y1,b;a) and R(Z,a) (in that order), so we are back where we started in the observer's frame; then perform the rotation through g; but this time about the fixed Z axis instead of the rotated Z2 axis; then redo both operations R(Z,a) and R(Y1,b;a) (in that order) so we are back again in the frame rotated by a about the Z axis and b about the Y1 axis:

 

                        R(Z2,g;a,b) = R(Y1,b;a) R(Z,a) R(Z,g) RT(Z,a) RT(Y1,b;a)

 

This can be simplified by substituting the previous _expression_ for R(Y1,b;a) :

 

R(Z2,g;a,b) = {R(Z,a) R(Y,b) RT(Z,a)} R(Z,a) R(Z,g) RT(Z,a) {R(Z,a) RT(Y,b) RT(Z,a)}

 

After cancellation of terms RT(Z,a) R(Z,a) this simplifies to:

 

R(Z2,g;a,b) = R(Z,a) R(Y,b) R(Z,g) RT(Y,b) RT(Z,a)

 

Finally we obtain the _expression_ for R'(a,b,g) by substituting these expressions for  R(Y1,b;a) and R(Z2,g;a,b):

 

R'(a,b,g) = {R(Z,a) R(Y,b) R(Z,g) RT(Y,b) RT(Z,a)} {R(Z,a) R(Y,b) RT(Z,a)} R(Z,a)

 

which after cancellation of terms yields the same _expression_ as for R(a,b,g) :

 

                        R'(a,b,g) = R(Z,a) R(Y,b) R(Z,g)

Reply via email to