La matrice permet d'effectuer n'importe quelle transformation en appliquant sur les coordonnées de la forme d'origine 2 équations.
la fonction matrice possède 6 paramètres matrix(a b c d e f)
<rect transform="translate(30, 40)" />
<rect transform="matrix(1, 0, 0, 1, 30, 40)" />
<rect transform="rotate(45)" />
<rect transform="matrix(cos(a), sin(a), -sin(a), cos(a), 0, 0)" />
<rect transform="scale(0.5)" />
<rec transform="matrix(0.5, 0, 0, 0.5, 0, 0)" />
<rect transform="skewX(-15)" />
Les transformations peuvent être combinés en les ajoutant les unes à la suite des autres.
Attention toutefois le système de coordonnées tout entier est transformé lui aussi
<rect transform="rotate(30) translate(0, 40) " />
Le déplacement en x de 40px s'effectue suivant le nouvel axe x qui a subit lui aussi une rotation de 30°
La multiplication de matrice s'effectue en
la propriété transform-origin
permet de sélectionner l'origine de la transformation. C'est très utile dans le cas des rotations.
<rect x="50" y="25" width="100" height="100"
transform="rotate(45)" transform-origin="100 75"/>
L'origine de la transformation est située au milieu du carré.