2010-11-14 31 views
3

Il s'agit plutôt d'une question de curiosité pour savoir pourquoi MatrixTransforme comme elle est plutôt qu'un vrai problème.La matrice de MatrixTransform me semble transposée

MSDN donne la matrice de transformation affine de MatrixTransform comme ceci:

 m11 m12 0 
A := m21 m22 0 
    offX offY 1 

http://msdn.microsoft.com/en-us/library/system.windows.media.matrixtransform(v=VS.100).aspx

Pour transformer un point, vous utilisez cette façon: x' = xTA. Ceci est différent de ce que j'attendais - x' = Ax, qui utilise cette matrice:

 m11 m12 offX 
A := m21 m22 offY 
     0 0  1 

Je me rends compte que cela ne fait aucune différence pour la mise en œuvre de MatrixTransform, mais je me demande si je manque un aperçu ici. Est-ce que quelqu'un sait pourquoi la matrice de transformation est spécifiée comme elle est?

Répondre

1

C'est simplement une convention d'avoir la matrice row-major au lieu de major major. La plupart des systèmes graphiques informatiques suivent cette convention.