This is an experimental technology
Because this technology's specification has not stabilized, check the compatibility table for the proper prefixes to use in various browsers. Also note that the syntax and behavior of an experimental technology is subject to change in future versions of browsers as the spec changes.
The DOMMatrixReadOnly
interface represents 4x4 matrices, suitable for 2D and 3D operations. If this interface defines only read-only matrices, the DOMMatrix
interface which inherits from it, add all the properties and the methods to allow to have modifiable matrices.
A 4x4 matrix is suitable to describe any rotation and translation in 3D.
This interface should be available inside Web workers, though some implementations doesn't allow it yet.
Properties
This interface doesn't inherit any other property.
m11
,m12
,m13
,m14
,m21
,m22
,m23
,m24
,m31
,m32
,m33
,m34
,m41
,m42
,m43
,m44
Read only- Are
double
representing each component of a 4x4 matrix. They are read-only, but their counterpart, with the same name, inDOMMatrix
aren't. a
,b
,c
,d
,e
,f
Read only- Are
double
representing each component of a 4x4 matrix needed for 2D rotations and translations. They are aliases for some components of the 4x4 matrix:2D 3D equivalent a
m11
b
m12
c
m21
d
m22
e
m41
f
m42
DOMMatrix
aren't. DOMMatrixReadOnly.is2D
Read only- Is a
Boolean
indicating if the matrix contains a 2D matrix and only accept 2D transformations. DOMMatrixReadOnly.isIdentity
Read only- Is a
Boolean
indincating if the matrix identity, that is a matrix with1
on the components of its diagonal, and0
elsewhere.
Methods
This interface doesn't inherit any method.
DOMMatrixReadOnly.translate()
- Returns a
DOMMatrix
containing a new matrix being the result of the matrix being translated by the given vector. The original matrix is not modified. DOMMatrixReadOnly.scale()
- Returns a
DOMMatrix
containing a new matrix being the result of the matrix x and y dimensions being scaled by the given factor, centered on the origin given. The original matrix is not modified. DOMMatrixReadOnly.scale3d()
- Returns a
DOMMatrix
containing a new matrix being the result of the matrix x, y and z dimension being scaled by the given factor, centered on the origin given. The original matrix is not modified. DOMMatrixReadOnly.scaleNonUniform()
- Returns a
DOMMatrix
containing a new matrix being the result of the matrix x, y and z dimension being scaled by the given factor for each dimension, centered on the origin given. The original matrix is not modified. DOMMatrixReadOnly.rotate()
- Returns a
DOMMatrix
containing a new matrix being the result of the original matrix being rotated by the given angle, with the rotation centered on the origin given. The original matrix is not modified. DOMMatrixReadOnly.rotateFromVector()
- Returns a
DOMMatrix
containing a new matrix being the result of the original matrix being rotated by the angle between the given vector and (1,0), centered on the origin given. The original matrix is not modified. DOMMatrixReadOnly.rotateAxisAngle()
- Returns a
DOMMatrix
containing a new matrix being the result of the original matrix being rotated by the given angle and the give vector. The original matrix is not modified. DOMMatrixReadOnly.skewX()
- Returns a
DOMMatrix
containing a new matrix being the result of the original matrix being skewed along the x-axis by the given factor. The original matrix is not modified. DOMMatrixReadOnly.skewY()
- Returns a
DOMMatrix
containing a new matrix being the result of the original matrix being skewed along the y-axis by the given factor. The original matrix is not modified. DOMMatrixReadOnly.multiply()
- Returns a
DOMMatrix
containing a new matrix being the result of the original matrix being multiplied by the givenDOMMatrix
. The original matrix is not modified. DOMMatrixReadOnly.flipX()
- Returns a
DOMMatrix
containing a new matrix being the result of the original matrix being flipped around the x-axis, that is multiplied by theDOMMatrix(-1, 0, 0, 1, 0, 0)
. The original matrix is not modified. DOMMatrixReadOnly.flipY()
- Returns a
DOMMatrix
containing a new matrix being the result of the original matrix being flipped around the y-axis, that is multiplied by theDOMMatrix(1, 0, 0, -1, 0, 0)
. The original matrix is not modified. DOMMatrixReadOnly.invert()
- Returns a
DOMMatrix
containing a new matrix being the result of the original matrix being inverted. The original matrix is not modified. If the matrix cannot be inverted, all its components are set toNaN
andis2D()
returnsfalse
.
DOMMatrixReadOnly.transformPoint()
- Returns a
DOMPoint
that is the point given in parameter multiplied by the matrix. Bot the original point and the matrix aren't modified. DOMMatrixReadOnly.toFloat32Array()
- Returns a
Float32Array
containing the 6 components (a
,b
,c
,d
,e
,f
) in the case of a 2D matrix or the 16 components (m11
,m12
,m13
,m14
,m21
,m22
,m23
,m24
,m31
,m32
,m33
,m34
,m41
,m42
,m43
,m44
) for a 3D matrix. DOMMatrixReadOnly.toFloat64Array()
- Returns a
Float64Array
containing the 6 components (a
,b
,c
,d
,e
,f
) in the case of a 2D matrix or the 16 components (m11
,m12
,m13
,m14
,m21
,m22
,m23
,m24
,m31
,m32
,m33
,m34
,m41
,m42
,m43
,m44
) for a 3D matrix. DOMMatrixReadOnly.toString()
- Returns a
DOMString
containing the 6 components separated by a','
and prefixed by the CSS matrix functional notation, as'matrix (a, b, c, d, e, f)',
in the case of a 2D matrix or matrix3d functional notation and the 16 components,'matrix3d(m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44)'
, for a 3D matrix.
Specifications
Specification | Status | Comment |
---|---|---|
Geometry Interfaces Module Level 1 The definition of 'DOMMatrixReadOnly' in that specification. |
Candidate Recommendation | Initial definition |
Browser compatibility
Feature | Firefox (Gecko) | Chrome | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | 33 (33) | ? | Not supported | ? | Not supported |
Availability on Web workers | Not supported | ? | Not supported | ? | Not supported |
Feature | Firefox Mobile (Gecko) | Android | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|
Basic support | 33.0 (33) | ? | Not supported | ? | Not supported |
Availability on Web workers | Not supported | ? | Not supported | ? | Not supported |