# Tait-Bryan (Euler) rotations

Discussion in 'Scripting' started by tibor02, Aug 3, 2022.

1. ### tibor02

Joined:
Aug 3, 2022
Posts:
4
I have been experimenting with Quaternion.Euler() and transform.rotation.eulerAngles. I could not find much information but I think that the two statements use Tait-Bryan (as opposed to Proper) Euler angles with a z-x-y rotations in extrinsic mode.
I did some tests in Unity 3D and I think this is correct but I would like somebody to confirm please .

The documentation for Euler() method says "Returns a rotation that rotates z degrees around the z axis, x degrees around the x axis, and y degrees around the y axis; applied in that order." so I assumed z-x-y.

Joined:
Mar 16, 2013
Posts:
39,434

Joined:
Aug 3, 2022
Posts:
4
4. ### Kurt-Dekker

Joined:
Mar 16, 2013
Posts:
39,434
Works fine for me. Try incognito window.

5. ### tibor02

Joined:
Aug 3, 2022
Posts:
4
The link works fine now, thank you for the suggestion.
Though, the link only mentions the associated problems with Euler angles and why it is better to use quaternions, it does not answer the thread question, that is if the Unity wrapper methods like Euler() are using Tait-Baylor z-x-y conversion?

6. ### Bunny83

Joined:
Oct 18, 2010
Posts:
4,219
Yes, it does. I don't think I've ever seen any application that uses "proper euler angles". The Tait–Bryan "flavour" is pretty much the standard in aviation, engineering and pretty much any other field I can think of. Proper euler angles are horrible to convert between extrinsic and intrinsic while the Tait–Bryan euler angles just use the reverse order.

So yes, you would rotate first around the world/parent z axis, followed by the world/parent x axis, followed by the world/parent y axis.

You can view them as intrinsic by rotating by the local y axis first, followed by the new local x axis, followed by the new local z axis. Both represent the same thing

tibor02 likes this.
7. ### tibor02

Joined:
Aug 3, 2022
Posts:
4
Thank you

For an interested reader, this is the same how Unity 3D UI in Edit mode behaves. Applying rotation in Transform component to XYZ will rotate the object by z-x-y.