views:

60

answers:

3

I'm using Catia software. When I query the position of an object inside my CAD drawing, the system returns a 3x4 matrix

[Rotations | Translations]

I think that the Rotations are expressed in a ZXZ fashion but for further processing I'd like to convert that rotation matrix to a XYZ notation, is this something doable?

Edit:

My object is positionned at [ 0, 0, 1000 ] the orientation given by Catia is

R = [ 1  0  0 ]  
    [ 0  0  1 ]  
    [ 0 -1  0 ]

When I try to multiply my own point [ 0, 0, 50 ] ( just an offset on the Z axis )

P1 = [ 0  ]
     [ 0  ]
     [ 50 ]

R*P1 = [ 0  ]
       [ 50 ]
       [ 0  ]

This is what lead me to believe that the rotation matrix is not XYZ with right hand notation.

A: 

I'm afraid you'll have to work out the math.

Alexandre C.
Any idea on how I should proceed?
Eric
It's not easy given the information. There are many conventions for Euler angles, http://en.wikipedia.org/wiki/Euler_angles should provide some useful reading.
Alexandre C.
A: 

Who gives matrices in ZXZ notation? Are you sure it is the format?

If it's a regular roation matrix, then you should start by taking a unit vector along one of the axes and see where the transformation brings it. It will give you two of the euler angles. To get the third, you need to consider a plane generated by two vectors.

Pavel Radzivilovsky
A: 

You may think of your 3x4 transformation matrix as a set of three unit vectors that define transformed coordinate system axes (first three columns of the matrix) and an origin of that coordinate system (fourth column). For your case the unit vectors are:
X = (1, 0, 0)
Y = (0, 0, -1)
Z = (0, 1, 0)
So in your transformed system, X axis is the same as original one, Y became -Z, and Z became +Y. That is actually a 90 degrees rotation around X axis (when Z turns towards Y).

Archie