I'm trying to wrap my head around rotations in blender. Let's say I have a Cube which I rotate via Object Properties where I specify, for example: Rotation X: 10, Y: 20 and Z: 30. Now I want to "cancel" X rotation by rotating an object against X axis (select cube, hit R then X) and when I type -10 it doesn't cancel X rotation - that is, it doesn't become zero in object properties, instead in Object Properties window it becomes X: 0.468, Y: 24.7, Z: 26.4. If I try to manually rotate object back to 0,0,0 rotation angle and rotate manually by -10, -20 and -30 degrees it doesn't arrive to that position either. How can I compute a rotation angle to move back object in that position?

The purpose of this manipulation: I set up a camera on some 0,0,z coordinate pointing towards center of coordinates and an object that I rotated against a certain image to have a desired perspective. Now I want to move object back to 0,0,0 position and 0,0,0 rotation while rotating the camera to the opposing angle to maintain original perspective.

After some pondering on the above problem I ended up making a Camera a child of the object that I rotated then manually reset object rotation via object properties to (0,0,0) and then separated Camera from the object while keeping transformation. It did the trick however rotation wasn't what I expected it to be. I tried reading more https://docs.blender.org/manual/en/latest/advanced/appendices/rotations.html but I'm still not sure I fully understand it. Is there a good and relatively short explanation of how rotations work in blender and in particular what is the relation of object properties rotation and axis rotation via R key?


1 Answer 1


The Location, Rotation and Scale values you see in the side panel are the local properties of the object, that's the reason (or one of them) this tab is titled Item. When the cube is not parented to another object then its local rotation (which is local in relation to its superordinate system) is the same as its global rotation - but now it's no longer aligned with the global orientation.

Your 3D Viewport is usually by default set to Global as Transformation Orientation. So when you hit R, X you're rotating on global X. But as said before, since you've rotated your cube 10°/20°/30° on X/Y/Z it is no longer aligned with the global X axis, so this action results in rotating it globally on all its 3 local axes - which is why you get three new values in the rotation field.

If you want to rotate along the local X axis you can either switch the 3D Viewport to local orientation or instead of hitting R, X you can hit the X twice: R, X, X and it will switch to local rotation.

Repeating to press X now let's you toggle between local and global. And by the way, if the viewport is set to Local orientation, it works the other way round: X once is local rotation, twice for global and further on for toggling back and forth.

This is also working with translation and scaling. Just a quick note: even though you can switch to Local orientation, it is possible that rotating back 10° locally not necessarily sets the X value back to 0°, it could also be 0.000002° or -0.000001° or similar. I guess that's due to floating point imprecisions when rotating not aligned with the global orientation.

local orientation

global rotation

local rotation

global orientation

  • $\begingroup$ Thank you! I did notice that I can switch to local but was baffled by fraction values, it makes sense now. $\endgroup$
    – J. A.
    Nov 4, 2022 at 18:59

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .