# Rotx, Roty, Rotz

What is the exact meaning of Rotx, Roty and Rotz in the IPO curve editor ? it can’t be really the angle of the object according the axis x,y,z. I mean, rotations are non commutative : if you rotate according X and then according Y and then according Z, normally, the result will be different than if you rotate first according Z and Y and then X (for example). But with Blender, it is commutative !

it seems so strange, so what is the real thing behing Rotx, Roty and Rotz ??
I heard about quaternion, but I don’t know if there is a link with that.

They are euler rotation, quaternier is only used with armature.

The rotation is axis based if you rotate it on X, the object will rotate on global X axis (in object mode). So rotation on Z will always rotate on Z, even if you object is rotated -90deb on X.

Thank you for the answer, but well, here is texte I have picked on the web :

3.2. Euler’s method

The finite rotations in 3D are non-commutative, which means that the rotations should be performed in specific order to have the same resulting position. Euler’s method uses a specific order of rotations about three predefined axes. In Euler’s method, [R] can be defined as the result of [R1][R2][R3] where [R1], [R2], and [R3] are the sequential rotation matrices about the first, second, and third axes.

But in Blender, whereas you rotating first on X and then on Y and Z or in another order, you still find the same result.

So I still don’t understand how all that run…

It might not help much but this is what the Blender manual says:

Make an object rotate:
This is the best method for specifying axis rotations quickly: Select the object; in the IPOWindow, press one of the “Rot” channels and use CTRL-LMB to insert two points. If the axis rotation must be continuous, you must use the Curve>>Extend Mode>>Extrapolation Menu entry.

One disadvantage of working with motion curves is that the freedom of transformations is limited. You can work quite intuitively with motion curves, but only if this can be processed on an XYZ basis.

For a location, this is outstanding, but for a size and rotation there are better mathematical descriptions available: matrices (3x3 numbers) for size and quaternions (4 numbers) for rotation. These could
also have been processed in the channels, but this can quite easily lead to confusing and mathematically complicated situations.

Limiting the size to the three numbers XYZ is obvious, but this limits it to a rectangular distortion. A diagonal scaling such as ‘shearing’ is impossible. Simply working in hierarchies can solve this. A
non-uniform scaled Parent will influence the rotation of a Child as a ‘shear’.

The limitation of the three number XYZ rotations is less intuitive. This so-called Euler rotation is not uniform - the same rotation can be expressed with different numbers - and has the bothersome effect
that it is not possible to rotate from any position to another, the infamous gimbal lock. While working with different rotation keys, the user may suddenly be confronted with quite unexpected
interpolations, or it may turn out to be impossible to force a particular axis rotation when making manual changes. Here, also, a better solution is to work with a hierarchy. A Parent will always assign the
specified axis rotation to the Child. (It is handy to know that the X, Y and Z rotations are calculated one after the other. The curve that affects the RotX channel, always determines the X axis rotation).

Luckily, Blender calculates everything internally with matrices and quaternions. Hierarchies thus work normally, and the Rotate mode does what you would expect it to. Only the IPOs are a limitation

In a more freindly way, if you rotate an object around a global axis, then the rotation is automatically calculated around the object’s local axes.