Deprecated
This feature has been removed from the Web standards. Though some browsers may still support it, it is in the process of being dropped. Avoid using it and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

Many of SVG's graphics operations utilize 2x3 matrices of the form:

[a c e]
[b d f]

which, when expanded into a 3x3 matrix for the purposes of matrix arithmetic, become:

[a c e]
[b d f]
[0 0 1]

An SVGMatrix object can be designated as read only, which means that attempts to modify the object will result in an exception being thrown.

Warning: SVG 2 replaced the SVGMatrix interface by the more general DOMMatrix and DOMMatrixReadOnly interfaces.

Properties

SVGMatrix.a
A float representing the a component of the matrix.
SVGMatrix.b
A float representing the b component of the matrix.
SVGMatrix.c
A float representing the c component of the matrix.
SVGMatrix.d
A float representing the d component of the matrix.
SVGMatrix.e
A float representing the e component of the matrix.
SVGMatrix.f
A float representing the f component of the matrix.

Methods

SVGMatrix.multiply()
Performs matrix multiplication. This matrix is post-multiplied by another matrix, returning the resulting new matrix as SVGMatrix.
SVGMatrix.inverse()
Returns the inverse matrix as SVGMatrix.
SVGMatrix.translate()
Post-multiplies a translation transformation on the current matrix and returns the resulting matrix as SVGMatrix.
SVGMatrix.scale()
Post-multiplies a uniform scale transformation on the current matrix and returns the resulting matrix as SVGMatrix.
SVGMatrix.scaleNonUniform()
Post-multiplies a non-uniform scale transformation on the current matrix and returns the resulting matrix as SVGMatrix.
SVGMatrix.rotate()
Post-multiplies a rotation transformation on the current matrix and returns the resulting matrix as SVGMatrix.
SVGMatrix.rotateFromVector()
Post-multiplies a rotation transformation on the current matrix and returns the resulting matrix as SVGMatrix. The rotation angle is determined by taking (+/-) atan(y/x). The direction of the vector (x, y) determines whether the positive or negative angle value is used.
SVGMatrix.flipX()
Post-multiplies the transformation [-1 0 0 1 0 0] and returns the resulting matrix as SVGMatrix.
SVGMatrix.flipY()
Post-multiplies the transformation [1 0 0 -1 0 0] and returns the resulting matrix as SVGMatrix.
SVGMatrix.skewX()
Post-multiplies a skewX transformation on the current matrix and returns the resulting matrix as SVGMatrix.
SVGMatrix.skewY()
Post-multiplies a skewY transformation on the current matrix and returns the resulting matrix as SVGMatrix.

Exceptions

A DOMException with the code NO_MODIFICATION_ALLOWED_ERR is raised when attempting updating a read-only attribute or when the object itself is read-only.

Specifications

Specification Status Comment
Scalable Vector Graphics (SVG) 1.1 (Second Edition)
The definition of 'SVGMatrix' in that specification.
Recommendation Initial definition

Browser compatibility

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidiOS SafariSamsung Internet
Basic support
Deprecated
Chrome Full support YesEdge Full support YesFirefox Full support YesIE Full support 9Opera Full support YesSafari Full support YesWebView Android ? Chrome Android ? Edge Mobile Full support YesFirefox Android Full support YesOpera Android ? Safari iOS ? Samsung Internet Android ?

Legend

Full support  
Full support
Compatibility unknown  
Compatibility unknown
Deprecated. Not for use in new websites.
Deprecated. Not for use in new websites.

Document Tags and Contributors

Last updated by: fscholz,