Tilman, I'd like to make one further comment on this because it has a bearing on the historical confusion about Eulerian angles, and thus hopefully my explanation will help to resolve at least some of the confusion.
I stated in my previous response that the choice between the 'fixed' vs. 'rotating object' conventions (equivalent to the choice between the 'rotating' vs. 'fixed observer' conventions) is a completely separate issue from the 'fixed' vs. 'rotating axes' description of Eulerian angles that we have all been talking about, and that I believe that mixing up these two concepts has caused some additional confusion in the past. Actually, it's not quite true to say that they are completely independent concepts. They are related in the following way: If you look at the MathWorld page on Eulerian angles: http://mathworld.wolfram.com/EulerAngles.html this uses the 'fixed object/rotating observer' or "physicists'" convention as I said (though it would help if this were always stated explicitly, without having to infer it from the form of the equations! - I think the problem is that the physicists just don't recognise the alternative "chemists'" convention as having any validity & therefore don't see the need to state which convention with regard to fixed vs. rotating object that they're using!). MathWorld also uses the 'ZXZ' rotation axis convention in contrast to the CCP4 'ZYZ' convention but this difference is immaterial for the purposes of this discussion. Except for a trivial change in notation, MathWorld's convention is identical to the one used by Rossmann & Blow (and also in X-PLOR, CNS etc). It's apparent from the diagram on the MathWorld page (originally taken from Goldstein and also used by Rossmann & Blow) that the component rotations are in the order: phi about z, theta about *new* x, then psi about *new* z. The product matrix therefore has the form (with the component matrices appearing from right to left): A(phi,theta,psi) = B(z,psi).C(x,theta).D(z,phi) However remember that it's the observer who is rotating here, the object is fixed, so from the observer's point of view the rotation axes are rotating with him, therefore relative to his frame of reference they are actually *fixed* axes. Also note that if the observer rotates through an angle phi, the object appears to him to have rotated through -phi. So from the observer's point of view the component rotations of the object are about *fixed* axes but with the opposite sense of rotation. This is clear from the form of the component matrices B, C & D which are axial rotation matrices but with the signs of the angles reversed, so in CCP4 notation phi = -alpha, theta = -beta, psi = -gamma (note however that these relationships are *not* true for the CCP4 *convention* since we're assuming here that the beta rotation is about the x axis instead of about y). Also remember that the product matrix A above operates on the co-ordinates of the *observer*, so to get the matrix R which operates on the *object's* co-ordinates you have to invert A (or transpose it since it's orthogonal), i.e. A = R~, and consequently to obtain the expression for R the order of matrix multiplication has to be reversed and each component matrix transposed (equivalent to changing the signs of the angles): R~(alpha,beta,gamma) = Rz(-gamma).Rx(-beta).Rz(-alpha) or R(alpha,beta,gamma) = Rz(alpha).Rx(beta).Rz(gamma) which is same *form* of the equation as for the CCP4 convention (but here the beta rotation is about x instead of y). Note that all rotations above occur about axes that are *fixed* relative to the observer, and therefore the component matrices all take on the simple 'axial' form. So to summarise the main conclusion: Rotations about *rotating* axes in the *fixed object* frame of reference are equivalent to rotations about *fixed* axes in the *fixed observer* frame of reference (in each case provided the sense of rotation is reversed throughout and the product matrix for the fixed object case is transposed before applying it to the object co-ordinates). I think this actually explains the masochistic obsession in the literature with the 'rotating axes' description of Eulerian angles, even though it leads to absurdly and unnecessarily complex equations, not to mention everlasting confusion! People look at the Goldstein diagram and interpret it as showing rotations about the rotating axes of the *object*, when in fact the diagram is actually illustrating a much simpler concept, namely a rotating *observer*, so the axes of rotation are actually *fixed* relative to the observer (and it doesn't help that often no explanation of this appears with the diagram!). The converse of the above is of course also true: Rotations about *fixed* axes in the *fixed* object frame of reference are equivalent to rotations about *rotating* axes in the *fixed* observer frame of reference (same proviso applies). Hope I haven't thoroughly confused everyone, I think the bottom line here is: avoid the 'rotating observer' and 'rotating axes' ways of thinking about this, always keep the observer and the rotation axes fixed and it will all be very easy! Cheers -- Ian > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf Of Ian Tickle > Sent: 14 December 2007 16:05 > To: Tilman Schirmer > Cc: CCP4BB@jiscmail.ac.uk > Subject: RE: CCP4 rotation convention > > > Hi Tilman > > That's great! Your derivation for the 'rotating axes' case is > essentially the same as one I derived for myself and also agrees with > that of Jorge Navaza (ITC Vol F, sect A13.2.1.1 p.273), but > it's nice to > have it all readily accessible on a webpage. BTW I note that you hide > the full horror of the complexity of the matrix algebra for > the rotating > axes case with a link which some people may not have noticed at first > glance: > > http://www.biozentrum.unibas.ch/personal/schirmer/modtrafo_htm > l/analogou > s.html . > > Personally I would show the gory details all up front to let > people know > what they are letting themselves in for if they insist on using this > description, i.e. a concatenated matrix product of no less that > *thirteen* simple axial rotations if written out in full, > compared with > only *three* for the 'fixed-axes' description! Personally I avoid the > 'moving axes' description like the plague, simply because it's the > source of so much complexity and confusion! > > A similar derivation is also given in Wikipedia: > > http://en.wikipedia.org/wiki/Euler_angles#Equivalence_of_the_movements > > (note that this page is currently in a state of flux, and do check > everything because some of it is just plain wrong - these facts are > probably not unconnected!). > > However there's still a problem, and it's by no means a trivial one! > Most sources on this subject give a different result but are all > consistent with each other, e.g. see here: > > http://mathworld.wolfram.com/EulerAngles.html > > and here: > > http://www.sp.uconn.edu/~ch351vc/pdfs/euler2.pdf > > and here: Goldstein, Classical Mechanics (this is the original 'gold' > standard on this subject, pun not intended!), > > and most surprising of all here: ITC Vol. B, sect. 2.3.6.2, p.252-3 > (Rossmann). Note that Rossmann's matrix here is identical to the > MathWorld one. > > Note also that the matrix given on the Wikipedia page is completely > wrong and not consistent with anywhere else (e.g. for ZYZ it seems to > have alpha & gamma swapped in the matrix even though they are defined > identically - unless someone has fixed it by the time you > read this), so > ignore it! > > On the MathWorld page we see the rotations phi (= our alpha) around z, > theta (= beta) around *rotated* x, psi (= gamma) around > *rotated* z and > the product matrix is given as: > > A = B . C . D > or > R(a,b,g) = Rz(g).Rx(b).Rz(a) > > where note the matrices B=Rz(g), C=Rx(b) & D=Rz(a) are axial and > therefore rotations around the old *fixed* axes. This is clearly > different from the CCP4 convention (even taking into account that CCP4 > uses ZYZ): > > R(a,b,g) = Rz(a).Ry(b).Rz(g) > > So we have two completely different answers using apparently identical > definitions, except that some people use the ZYZ convention, and some > use ZXZ: but that doesn't account for the inconsistency > (though it does > tend to obscure the fact that there is an inconsistency!). > What's more, > I can assure you that CCP4 and the ROTW (rest of the world) are BOTH > correct - so how is that possible? > > I believe the answer goes to the root of all the historical confusion > about Eulerian angles. The answer is that people are assuming an > absolutely fundamental convention (without usually even taking the > trouble to state it explicitly!), which is different for CCP4 and the > ROTW. Actually this is not quite true: in fact computer > gaming software > seems to use the same convention as CCP4 - e.g. see here: > http://www.opengl.org/sdk/docs/man/xhtml/glRotate.xml (this of course > puts us in a clear majority by far over ROTW!). > > A clue to the answer actually lies in the apparently trivial change of > sign in the axial matrix used, e.g. CCP4 and OpenGL uses for rotation > about z: > > [ cos(a) -sin(a) 0 ] > [ sin(a) cos(a) 0 ] > [ 0 0 1 ] > > whereas the ROTW uses: > > [ cos(a) sin(a) 0 ] > [ -sin(a) cos(a) 0 ] > [ 0 0 1 ] > > However this is much more than a simple change of sign of the angles. > In fact if anyone cares to read Goldstein (thoroughly!) he makes it > quite clear: there are actually two fundamental conventions for > describing rotating bodies in use, one we can call the "physicists' > convention" (particularly quantum mechanicists), where the > object whose > co-ordinates are to be transformed is nevertheless considered to be > stationary and the observer is imagined to move around the object > instead (you can understand why non-physicists have trouble > with this!). > Obviously this convention has been used by people who have > traditionally > been able to comprehend what they're doing purely via the equations of > motion and who therefore apparently don't need graphical visualisation > aids(!). Goldstein writes the equation: > > (r)' = Ar > > (the brackets indicate that the vector r *doesn't* move, only its > components change value). > > The other convention we can call the "chemists' convention" > since it is > used by people who do need to visualise things, where the observer is > considered to be stationary and the object is moved, but note in the > opposite direction which explains the changes of sign in the > matrix, so > the net result is the same. Also it's pretty obvious why you have to > use this convention for computer graphics! Goldstein writes this as: > > r' = Ar > > (now the vector r does move and becomes the vector r'). > > So one could call this a fixed vs. moving object convention, but note > that it is completely separate from the fixed vs. moving axes > convention > we have all been talking about, and I believe that mixing up these two > concepts has caused additional confusion in the past. > > Cheers > > -- Ian > > > > -----Original Message----- > > From: [EMAIL PROTECTED] > > [mailto:[EMAIL PROTECTED] On Behalf Of Tilman Schirmer > > Sent: 13 December 2007 18:47 > > To: CCP4BB@JISCMAIL.AC.UK > > Cc: Tilman Schirmer > > Subject: Re: CCP4 rotation convention > > > > Dear all, > > > > I was not aware of this discussion, when I also ran into > > confusion. Finally, I figured it out myself and > > wrote a summary. Perhaps it is useful for somebody: > > http://www.biozentrum.unibas.ch/personal/schirmer/modtrafo_htm > > l/rotation.html > > > > I fully agree with the final comments by Ian and Sacha. > > > > The comment is part of the documentation for my program > > MODTRAFO, a collection of jiffy programs > > dealing basically with models and transformations. The > > platform allows e.g. to create easily rotation > > matrices from polar or Eulerian angles or, vice versa, to > > analyze a transformation for its angular > > components. > > > > Best, > > Tilman > > > > > > > > > Disclaimer > This communication is confidential and may contain privileged > information intended solely for the named addressee(s). It > may not be used or disclosed except for the purpose for which > it has been sent. If you are not the intended recipient you > must not review, use, disclose, copy, distribute or take any > action in reliance upon it. If you have received this > communication in error, please notify Astex Therapeutics Ltd > by emailing [EMAIL PROTECTED] and destroy all > copies of the message and any attached documents. > Astex Therapeutics Ltd monitors, controls and protects all > its messaging traffic in compliance with its corporate email > policy. The Company accepts no liability or responsibility > for any onward transmission or use of emails and attachments > having left the Astex Therapeutics domain. Unless expressly > stated, opinions in this message are those of the individual > sender and not of Astex Therapeutics Ltd. The recipient > should check this email and any attachments for the presence > of computer viruses. Astex Therapeutics Ltd accepts no > liability for damage caused by any virus transmitted by this > email. E-mail is susceptible to data corruption, > interception, unauthorized amendment, and tampering, Astex > Therapeutics Ltd only send and receive e-mails on the basis > that the Company is not liable for any such alteration or any > consequences thereof. > Astex Therapeutics Ltd., Registered in England at 436 > Cambridge Science Park, Cambridge CB4 0QA under number 3751674 > > Disclaimer This communication is confidential and may contain privileged information intended solely for the named addressee(s). It may not be used or disclosed except for the purpose for which it has been sent. If you are not the intended recipient you must not review, use, disclose, copy, distribute or take any action in reliance upon it. If you have received this communication in error, please notify Astex Therapeutics Ltd by emailing [EMAIL PROTECTED] and destroy all copies of the message and any attached documents. Astex Therapeutics Ltd monitors, controls and protects all its messaging traffic in compliance with its corporate email policy. The Company accepts no liability or responsibility for any onward transmission or use of emails and attachments having left the Astex Therapeutics domain. Unless expressly stated, opinions in this message are those of the individual sender and not of Astex Therapeutics Ltd. The recipient should check this email and any attachments for the presence of computer viruses. Astex Therapeutics Ltd accepts no liability for damage caused by any virus transmitted by this email. E-mail is susceptible to data corruption, interception, unauthorized amendment, and tampering, Astex Therapeutics Ltd only send and receive e-mails on the basis that the Company is not liable for any such alteration or any consequences thereof. Astex Therapeutics Ltd., Registered in England at 436 Cambridge Science Park, Cambridge CB4 0QA under number 3751674