---
title: SVGMatrix
slug: Web/API/SVGMatrix
translation_of: Web/API/SVGMatrix
---
{{APIRef("SVG")}}{{deprecated_header}}
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 {{domxref("DOMMatrix")}} and {{domxref("DOMMatrixReadOnly")}} interfaces.
Properties
- {{domxref("SVGMatrix.a")}}
- A float representing the a component of the matrix.
- {{domxref("SVGMatrix.b")}}
- A float representing the b component of the matrix.
- {{domxref("SVGMatrix.c")}}
- A float representing the c component of the matrix.
- {{domxref("SVGMatrix.d")}}
- A float representing the d component of the matrix.
- {{domxref("SVGMatrix.e")}}
- A float representing the e component of the matrix.
- {{domxref("SVGMatrix.f")}}
- A float representing the f component of the matrix.
Methods
- {{domxref("SVGMatrix.multiply()")}}
- Performs matrix multiplication. This matrix is post-multiplied by another matrix, returning the resulting new matrix as
SVGMatrix
.
- {{domxref("SVGMatrix.inverse()")}}
- Returns the inverse matrix as
SVGMatrix
.
- {{domxref("SVGMatrix.translate()")}}
- Post-multiplies a translation transformation on the current matrix and returns the resulting matrix as
SVGMatrix
.
- {{domxref("SVGMatrix.scale()")}}
- Post-multiplies a uniform scale transformation on the current matrix and returns the resulting matrix as
SVGMatrix
.
- {{domxref("SVGMatrix.scaleNonUniform()")}}
- Post-multiplies a non-uniform scale transformation on the current matrix and returns the resulting matrix as
SVGMatrix
.
- {{domxref("SVGMatrix.rotate()")}}
- Post-multiplies a rotation transformation on the current matrix and returns the resulting matrix as
SVGMatrix
.
- {{domxref("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.
- {{domxref("SVGMatrix.flipX()")}}
- Post-multiplies the transformation [-1 0 0 1 0 0] and returns the resulting matrix as
SVGMatrix
.
- {{domxref("SVGMatrix.flipY()")}}
- Post-multiplies the transformation [1 0 0 -1 0 0] and returns the resulting matrix as
SVGMatrix
.
- {{domxref("SVGMatrix.skewX()")}}
- Post-multiplies a skewX transformation on the current matrix and returns the resulting matrix as
SVGMatrix
.
- {{domxref("SVGMatrix.skewY()")}}
- Post-multiplies a skewY transformation on the current matrix and returns the resulting matrix as
SVGMatrix
.
Exceptions
A {{domxref("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 |
{{SpecName("SVG1.1", "coords.html#InterfaceSVGMatrix", "SVGMatrix")}} |
{{Spec2("SVG1.1")}} |
Initial definition |
Browser compatibility
{{Compat("api.SVGMatrix")}}