Re: transformation matrix decomposition



edoardo wrote:

Hi,
this is my first message in this group so: don't be rude :)
I understand how I can compose transformation matrixes
(translation, rotation, scale) but I have a doubt: if I have a
composed matrix, am I able to decompose It in a scale, a
rotation and a traslation? Are there any limits and where may I
find some documentation about how to do It?

OpenGL - like most 3D graphics implementations - uses homogenous
coordinates, i.e. 4-vectors and 4x4-matrices.

A homogenous transformation amtrix can be throught of 3 parts:
* rotational/scaling part
* translational part
* shearing part

| R_xx R_xy R_xz T_z |
| R_yx R_yy R_yz T_y |
M = | R_zx R_zy R_zz T_z |
|
| S_x S_y S_z 1 |

Translation and shearing can be described by each single vectors.
If you want them in matrix form just take the translation/shear
submatrix and fill the rest with the identity matrix (all 0
except the diagonal).

Rotation and Scaling are both described by the same 3x3
submatrix. A rotation matrix has the property of being
orthogonal. And if the scale is 1, then it is orthonormal. So to
determine the scale you just have to determine the normalisation
factor(s) of the rotation matrix.

The rotational axis is the eigenvector of R (there's one and only
one eigenvector if R is a rotation matrix - you might get two,
but they're just antiparallel and have the same eigenvalue).

Wolfgang Draxinger
--
E-Mail address works, Jabber: hexarith@xxxxxxxxxx, ICQ: 134682867

.



Relevant Pages

  • Re: Locating An Image At Arbitrary Scales, Translations, and Rotations
    ... at an arbitrary scale, translation, and rotation. ... If your object really is just a rectangle, it's easy enough to find its ...
    (sci.image.processing)
  • transformation matrix decomposition
    ... I understand how I can compose transformation matrixes (translation, rotation, scale) but I have a doubt: if I have a composed matrix, am I able to decompose It in a scale, a rotation and a traslation? ...
    (comp.graphics.api.opengl)
  • Re: transformation matrix decomposition
    ... I understand how I can compose transformation matrixes (translation, rotation, scale) but I have a doubt: if I have a composed matrix, am I able to decompose It in a scale, a rotation and a traslation? ...
    (comp.graphics.api.opengl)
  • How does RegisterAnimationOutput work?
    ... public void Direct3D.AnimationController.RegisterAnimationOutput(string name, Matrix matrix, Vector3 scale, Quaternion rotation, Vector3 translation); ... Quaternion rotation = Quaternion.Identity; ...
    (microsoft.public.win32.programmer.directx.managed)
  • Re: Graphic transforms
    ... rotation is not about the desired rotation point. ... before rotating since scaling is on two different axis, ... one must apply scale, then rotate, then translation. ...
    (microsoft.public.dotnet.languages.vc)

Loading