There is no way you can be sure you get the *exact* angles you have entered. That's because there are more possible rotations that you can use to achieve the same effect.
As an alternative to the algorithm you're using, I have previously posted here a more elaborate algorithm (and more time consumming) for extracting euler angles, which will attempt to retrieve the "best looking solution". However, you may use it also to retrieve all possible combinations of angles. See link below: http://www.starfireresearch.com/services/java3d/samplecode/FlorinEulers.html Cheers, Florin -----Urspr�ngliche Nachricht----- Von: Fabrizio NUNNARI [mailto:[EMAIL PROTECTED] Gesendet: Mittwoch, 18. Juni 2003 11:44 An: [EMAIL PROTECTED] Betreff: Re: [JAVA3D] Transform3D and angles issue (fwd) Implemented. It works, but... For little angles I get: Setting angles <0.0,0.5699999999999998,0.0> Back-calculated euler angles are alpha=0.0, beta=0.5699999999999998, gamma=0.0 but when I pass the PI/2 rotation: Setting angles <0.0,-2.1600000000000006,0.0> Back-calculated euler angles are alpha=-3.141592653589793, beta=-0.9815926535897926, gamma=-3.141592653589793 I know the result is the same, but... Any further suggestion? Otherwise I'll keep it like that. Mark Whitehorn wrote: > A good reference for this sort of thing is Chapter 2 of "Introduction to > Robotics Mechanics and Control" by John J. Craig (Addison Wesley). Here's > equation 2.66 from section 2.8: > > beta = atan2(-r_31, sqrt(r_11^2 + r_21^2)) > alpha = atan2(r_21/cos(beta), r_11/cos(beta)) > gamma = atan2(r_32/cos(beta), r_33/cos(beta)) > > alpha, beta, gamma are ZYX Euler angles for the 3x3 rotation matrix > r_ij... > > It's just trigonometry. Just... ;-) > > Good luck with the PhD, I'll need it.... Fabrizio > Mark > > > >>----- Original Message ----- >>From: "Fabrizio NUNNARI" <[EMAIL PROTECTED]> >>To: <[EMAIL PROTECTED]> >>Sent: Tuesday, June 17, 2003 9:48 AM >>Subject: [spam: 07.00/05.00] [JAVA3D] Transform3D and angles issue >> >> >> >>>Hello, >>> >>>I'm getting confused by the tons of methods of the Transform3D class. >>>Is it possible to retrieve the rotational component stored in a matrix? >>>I mean "just the three angles around the three axes". >>> >>>I normally use the (misleading, at least for me) .setEuler(Vector3d >>>euler) method. I'm looking for an equivalent .getEuler(Vector3d euler) >> >>one. >> >>>I also saw a .set(AxisAngle4d a1). I never tried it, but a corresponding >>>.get(AxisAngle4d a1) doesn't exist. >>> >>>Finally, there is the copule .get/.set(Quat4d rot), but I haven't been >>>able to understand the relation between the stored (normalized) values >>>and angles value. >>> >>>What's the difference between .setEuler(Vector3d), .set(AxisAngle4d) and >>>.set(Quat4d rot) ???? >>> >>> >>> >>>The purpose? I have an object moved/rotated by a TransfromGroup. I want >>>to rotate it around a generic axes and then retrieve and print out the >>>resulting rotation angles (in the "Euler" form). >>> >>>Is it possible? >>> >>> >>>thanks, >>>Fabrizio NUNNARI >>> >>>-- >>>Fabrizio Nunnari (nunnarif at di.unito.it) >>>PhD Student - Computer Science Department - Torino - Italy >>>http://www.di.unito.it/~nunnarif/ >>> >>> >> > =========================================================================== > >>>To unsubscribe, send email to [EMAIL PROTECTED] and include in the >> >>body >> >>>of the message "signoff JAVA3D-INTEREST". For general help, send email >> > to > >>>[EMAIL PROTECTED] and include in the body of the message "help". >>> >> > > =========================================================================== > To unsubscribe, send email to [EMAIL PROTECTED] and include in the body > of the message "signoff JAVA3D-INTEREST". For general help, send email to > [EMAIL PROTECTED] and include in the body of the message "help". > -- Fabrizio Nunnari (nunnarif at di.unito.it) PhD Student - Computer Science Department - Torino - Italy http://www.di.unito.it/~nunnarif/ =========================================================================== To unsubscribe, send email to [EMAIL PROTECTED] and include in the body of the message "signoff JAVA3D-INTEREST". For general help, send email to [EMAIL PROTECTED] and include in the body of the message "help". ==========================================================================To unsubscribe, send email to [EMAIL PROTECTED] and include in the body of the message "signoff JAVA3D-INTEREST". For general help, send email to [EMAIL PROTECTED] and include in the body of the message "help".
