# translating world rotation values to local rotation axis

• Apr 12th 2013, 07:24 AM
andyman121
translating world rotation values to local rotation axis
Hi all,

I'm in a bit of a pickle. I am not a mathematician so be gentle with me. I have a problem with world and local rotation values in 3D software - I think the maths behind it uses quaternions.

What I am trying to achieve is to find out whether a foot is twisted inward (onto the instep) or outward, or perfectly aligned. I can simulate the situation in Maya (Autodesk's 3D modelling software) creating a joint setup replicating the lower leg/ankle/foot and rotate the ankle joint on it's local rotation axis nicely. The problem arises when the elevation of the foot (rotateZ) and turnout (rotateY) is combined. This gives quite different values to the world rotation values.

For example:
If I just rotate the ankle joint -60deg in the local Y axis to turnout the foot this shows by a -60deg rotateY value in the world coordinates (X and Z at 0)
If I just rotate the ankle joint -30deg in the local Z axis to elevate the foot this shows by a -30deg rotateZ value in the world coordinates (Y and Z at 0)
If I then combine a -60deg turnout and a -30deg elevation I get values of 40.893 in rotateX, -48.59 in rotateY and -49.107 in rotateZ for the world coordinates

The twist of the foot is determined on the X-axis which in the first two situations is +/-2deg in the world coordinates when rotated +/-2deg on the local rotation axis. In the third situation however it is 42.893 or 38.893 in the world coordinates depending on which way it is rotated on the local rotation axis (still +/- 2deg but with a different starting point from the 40.893).

What I am aiming for is to be able to determine from the rotateX, rotateY and rotateZ of the world rotation values of the ankle joint whether the foot is twisted in/out or perfectly aligned.

I hope that makes sense, I have included a scribble attachment to assist. Any help would be much appreciated.

Thanks,

Andy