DOMMatrixReadOnly - 代表只读的 4x4 矩阵,适用于 2D 和 3D 操作

DOMMatrixReadOnly 接口代表 4x4 矩阵,适用于 2D 和 3D 操作。如果该接口仅定义只读矩阵,继承自它的 DOMMatrix 接口,则添加所有属性和方法以允许具有可修改的矩阵。

4x4 矩阵适合描述 3D 中的任何旋转和平移。

该接口应该可以在 Web worker 中使用,但某些实现还不允许使用。

属性

该接口没有继承任何其他属性。

m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44 只读

均为 double,代表 4x4 矩阵的每个组成部分。它们是只读的,但 DOMMatrix 中具有相同名称的对应属性则不是。

a, b, c, d, e, f 只读

均为 double,表示 2D 旋转和平移所需的 4x4 矩阵的每个分量。它们是 4x4 矩阵的某些组件的别名:

2D 相等于 3D
a m11
b m12
c m21
d m22
e m41
f m42

它们是只读的,但 DOMMatrix 中具有相同名称的属性则不是。

DOMMatrixReadOnly.is2D 只读

一个 Boolean 指示矩阵是否包含 2D 矩阵并且仅接受 2D 变换。

DOMMatrixReadOnly.isIdentity 只读

一个 Boolean,表示是否为单位矩阵,即对角上的元素为 1,其他地方的为 0

方法

该接口不继承任何方法。

DOMMatrixReadOnly.flipX()

返回一个 DOMMatrix,其中包含一个新矩阵,它是原始矩阵围绕 x 轴翻转的结果,乘以 DOMMatrix(-1, 0, 0, 1, 0, 0) 。原始矩阵未被修改。

DOMMatrixReadOnly.flipY()

返回一个 DOMMatrix,其中包含一个新矩阵,它是围绕 y 轴翻转原始矩阵的结果,乘以 DOMMatrix(1, 0, 0, -1, 0, 0) 。原始矩阵未被修改。

DOMMatrixReadOnly.inverse()

返回一个 DOMMatrix,其中包含一个新矩阵,它是原始矩阵被反转的结果。原始矩阵未被修改。如果矩阵不能被反转,则其所有组件都设置为 NaN,而 is2D() 则返回 false

DOMMatrixReadOnly.multiply()

返回包含新矩阵的 DOMMatrix,该矩阵是原始矩阵乘以给定 DOMMatrix 的结果。原始矩阵未被修改。

DOMMatrixReadOnly.rotateAxisAngle()

返回包含新矩阵的 DOMMatrix,该矩阵是原始矩阵被给定角度和给定向量旋转的结果。原始矩阵未被修改。

DOMMatrixReadOnly.rotate()

返回一个 DOMMatrix,其中包含一个新矩阵,该矩阵是原始矩阵旋转给定角度的结果,旋转以给定原点为中心。原始矩阵未被修改。

DOMMatrixReadOnly.rotateFromVector()

返回包含新矩阵的 DOMMatrix,该矩阵是原始矩阵被旋转给定矢量和(1,0)之间的角度的结果,以给定的原点为中心。原始矩阵未被修改。

DOMMatrixReadOnly.scale()

返回一个 DOMMatrix,其中包含一个新矩阵,该矩阵是由给定因子缩放的矩阵 x 和 y 维度的结果,以给定的原点为中心。原始矩阵未被修改。

DOMMatrixReadOnly.scale3d()

返回一个 DOMMatrix,其中包含一个新矩阵,该矩阵是由给定因子缩放的矩阵 x,y 和 z 维度的结果,以给定的原点为中心。原始矩阵未被修改。

DOMMatrixReadOnly.scaleNonUniform()

返回包含新矩阵的 DOMMatrix,矩阵 x,y 和 z 维度的结果由每个维度的给定因子缩放,以给定的原点为中心。原始矩阵未被修改。

DOMMatrixReadOnly.skewX()

返回包含新矩阵的 DOMMatrix,该矩阵是原始矩阵沿着 x 轴由给定因子倾斜的结果。原始矩阵未被修改。

DOMMatrixReadOnly.skewY()

返回包含新矩阵的 DOMMatrix,该矩阵是原始矩阵沿 y 轴偏斜给定因子的结果。原始矩阵未被修改。

DOMMatrixReadOnly.toFloat32Array()

返回一个 Float32Array,包含 6 个组件( abcdef),在 2D 矩阵的情况下或 16 个组件( m11m12m13m14m21m22m23m24m31m32m33m34m41m42m43m44)用于 3D 矩阵。

DOMMatrixReadOnly.toFloat64Array()

返回包含 6 个组件( abcdef)的 Float64Array,如果是 2D 矩阵或者 16 个组件( m11m12m13m14m21m22m23m24m31m32m33m34m41m42m43m44)用于 3D 矩阵。

DOMMatrixReadOnly.toJSON()

返回 DOMMatrixReadOnly 对象的 JSON 表示。

DOMMatrixReadOnly.toString()

返回一个 DOMString,其中包含由 ',' 分隔的 6 个组件,并以 CSS 矩阵功能符号为前缀,为 'matrix (a, b, c, d, e, f)',,在 2D 矩阵或矩阵 3d 函数表示法和 16 个分量的情况,'matrix3d(m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44)',用于 3D 矩阵。

DOMMatrixReadOnly.transformPoint()

返回 DOMPoint,它是参数乘以矩阵给出的点。但原始点和矩阵不会被修改。

DOMMatrixReadOnly.translate()

返回包含新矩阵的 DOMMatrix,该矩阵是由给定向量转换的矩阵的结果。原始矩阵未被修改。

规范

规范 状态 备注
Geometry Interfaces Module Level 1
DOMMatrixReadOnly 的定义
候选推荐 初始定义

桌面浏览器兼容性

特性 Chrome Edge Firefox Internet Explorer Opera Safari
基础支持 61 不支持 33 不支持 48 不支持
Web workers 中支持 61 不支持 不支持 不支持 48 不支持
DOMMatrixReadOnly() 构造函数 61 不支持 33 不支持 48 不支持
m11 61 不支持 33 不支持 48 不支持
m12 61 不支持 33 不支持 48 不支持
m13 61 不支持 33 不支持 48 不支持
m14 61 不支持 33 不支持 48 不支持
m21 61 不支持 33 不支持 48 不支持
m22 61 不支持 33 不支持 48 不支持
m23 61 不支持 33 不支持 48 不支持
m24 61 不支持 33 不支持 48 不支持
m31 61 不支持 33 不支持 48 不支持
m32 61 不支持 33 不支持 48 不支持
m33 61 不支持 33 不支持 48 不支持
m34 61 不支持 33 不支持 48 不支持
m41 61 不支持 33 不支持 48 不支持
m42 61 不支持 33 不支持 48 不支持
m43 61 不支持 33 不支持 48 不支持
m44 61 不支持 33 不支持 48 不支持
a 61 不支持 33 不支持 48 不支持
b 61 不支持 33 不支持 48 不支持
c 61 不支持 33 不支持 48 不支持
d 61 不支持 33 不支持 48 不支持
e 61 不支持 33 不支持 48 不支持
f 61 不支持 33 不支持 48 不支持
is2D 61 不支持 33 不支持 48 不支持
isIdentity 61 不支持 33 不支持 48 不支持
flipX 61 不支持 33 不支持 48 不支持
flipY 61 不支持 33 不支持 48 不支持
inverse 61 不支持 33 不支持 48 不支持
multiply 61 不支持 33 不支持 48 不支持
rotate 61 不支持 33 不支持 48 不支持
rotateAxisAngle 61 不支持 33 不支持 48 不支持
rotateFromVector 61 不支持 33 不支持 48 不支持
scale 61 不支持 33 不支持 48 不支持
scale3d 61 不支持 33 不支持 48 不支持
scaleNonUniform 61 不支持 33 不支持 48 不支持
skewX 61 不支持 33 不支持 48 不支持
skewY 61 不支持 33 不支持 48 不支持
toFloat32Array 61 不支持 33 不支持 48 不支持
toFloat64Array 61 不支持 33 不支持 48 不支持
toJSON 61 不支持 33 不支持 48 不支持
toString 61 不支持 33 不支持 48 不支持
transform 61 不支持 33 不支持 48 不支持
transformPoint 61 不支持 33 不支持 48 不支持

移动浏览器兼容性

特性 Android Chrome for Android Edge mobile Firefox for Android IE mobile Opera Android iOS Safari
基础支持 61 61 不支持 33 未知 48 不支持
Web workers 中支持 61 61 不支持 不支持 未知 48 不支持
DOMMatrixReadOnly() 构造函数 61 61 不支持 33 未知 48 不支持
m11 61 61 不支持 33 未知 48 不支持
m12 61 61 不支持 33 未知 48 不支持
m13 61 61 不支持 33 未知 48 不支持
m14 61 61 不支持 33 未知 48 不支持
m21 61 61 不支持 33 未知 48 不支持
m22 61 61 不支持 33 未知 48 不支持
m23 61 61 不支持 33 未知 48 不支持
m24 61 61 不支持 33 未知 48 不支持
m31 61 61 不支持 33 未知 48 不支持
m32 61 61 不支持 33 未知 48 不支持
m33 61 61 不支持 33 未知 48 不支持
m34 61 61 不支持 33 未知 48 不支持
m41 61 61 不支持 33 未知 48 不支持
m42 61 61 不支持 33 未知 48 不支持
m43 61 61 不支持 33 未知 48 不支持
m44 61 61 不支持 33 未知 48 不支持
a 61 61 不支持 33 未知 48 不支持
b 61 61 不支持 33 未知 48 不支持
c 61 61 不支持 33 未知 48 不支持
d 61 61 不支持 33 未知 48 不支持
e 61 61 不支持 33 未知 48 不支持
f 61 61 不支持 33 未知 48 不支持
is2D 61 61 不支持 33 未知 48 不支持
isIdentity 61 61 不支持 33 未知 48 不支持
flipX 61 61 不支持 33 未知 48 不支持
flipY 61 61 不支持 33 未知 48 不支持
inverse 61 61 不支持 33 未知 48 不支持
multiply 61 61 不支持 33 未知 48 不支持
rotate 61 61 不支持 33 未知 48 不支持
rotateAxisAngle 61 61 不支持 33 未知 48 不支持
rotateFromVector 61 61 不支持 33 未知 48 不支持
scale 61 61 不支持 33 未知 48 不支持
scale3d 61 61 不支持 33 未知 48 不支持
scaleNonUniform 61 61 不支持 33 未知 48 不支持
skewX 61 61 不支持 33 未知 48 不支持
skewY 61 61 不支持 33 未知 48 不支持
toFloat32Array 61 61 不支持 33 未知 48 不支持
toFloat64Array 61 61 不支持 33 未知 48 不支持
toJSON 61 61 不支持 33 未知 48 不支持
toString 61 61 不支持 33 未知 48 不支持
transform 61 61 不支持 33 未知 48 不支持
transformPoint 61 61 不支持 33 未知 48 不支持

相关链接