I have this problem from my Graphics course. Given this transformation matrix:
I need to extract translation, rotation and scale matrices.
I’ve also have the answer (which is TRS):
I just have no idea (except for the Translation matrix) how I would get to this solution.
I am a person from the future, and I had the same problem. For future reference, here’s the algorithm for 4×4. You can solve your 3×3 problem by padding out your problem to the larger dimensions.
Start with a transformation matrix:[abcdefghijkl0001]
This is basically the last column of the matrix:→t=<d,h,l>While you’re at it, zero them in the matrix.
For this, take the length of the first three column vectors:sx=‖
Divide the first three column vectors by the scaling factors you just found. Your matrix should now look like this (remember we zeroed the translation):
a/s_x & b/s_y & c/s_z & 0\\
e/s_x & f/s_y & g/s_z & 0\\
i/s_x & j/s_y & k/s_z & 0\\
0 & 0 & 0 & 1
This is the rotation matrix. There are methods to convert it to quaternions, and from there to axis-angle, if you want either of those instead.