DOMMatrixReadOnly

DOMMatrixReadOnly 接口表示一个只读的 4×4 矩阵,适用于 2D 和 3D 操作。DOMMatrix 接口基于 DOMMatrixReadOnly,它增加了 DOMMatrix可变性,允许您在创建矩阵后对其进行更改。

此接口应在 Web 工作线程 中可用,尽管某些实现尚未允许。

构造函数

DOMMatrixReadOnly()

创建一个新的 DOMMatrixReadOnly 对象。

实例属性

此接口不继承任何属性。

is2D 只读

一个布尔标志,如果矩阵被初始化为一个 2D 矩阵,其值为 true。如果为 false,则矩阵为 3D。

isIdentity 只读

一个布尔值,如果矩阵是 单位矩阵,则其值为 true。单位矩阵是其中每个值都为 0 的矩阵,除了从左上角到右下角的主对角线上的值(换句话说,偏移量在每个方向上都相等)。

m11m12m13m14m21m22m23m24m31m32m33m34m41m42m43m44

双精度浮点数,表示 4×4 矩阵的每个分量,其中 m11m14 是第一列,m21m24 是第二列,依此类推。

abcdef

双精度浮点数,表示 4×4 矩阵的分量,这些分量是执行 2D 旋转和平移所必需的。这些是 4×4 矩阵中特定分量的别名,如下所示。

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

实例方法

此接口不继承任何方法。以下方法均不会更改原始矩阵。

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,该矩阵是通过计算源矩阵与指定矩阵的点积创建的:A⋅B。如果没有矩阵指定为乘数,则矩阵将乘以一个矩阵,其中每个元素都是 0除了右下角和其左上角的元素:m33m34。这些的默认值为 1。原始矩阵不会被修改。

DOMMatrixReadOnly.rotateAxisAngle()

返回一个新的 DOMMatrix,该矩阵是通过围绕指定向量将源矩阵旋转给定角度创建的。原始矩阵不会被修改。

DOMMatrixReadOnly.rotate()

返回一个新的 DOMMatrix,该矩阵是通过围绕其每个轴将源矩阵旋转指定度数创建的。原始矩阵不会被更改。

DOMMatrixReadOnly.rotateFromVector()

返回一个新的 DOMMatrix,该矩阵是通过围绕指定向量与 (1, 0) 之间的角度将源矩阵旋转创建的。原始矩阵不会被修改。

DOMMatrixReadOnly.scale()

返回一个新的 DOMMatrix,该矩阵是通过根据每个轴指定的量对源矩阵进行缩放创建的,中心位于给定的原点。默认情况下,X 轴和 Z 轴按 1 进行缩放,Y 轴没有默认缩放值。默认原点为 (0, 0, 0)。原始矩阵不会被修改。

DOMMatrixReadOnly.scale3d()

返回一个新的 DOMMatrix,该矩阵是通过围绕指定的原点对源 3D 矩阵沿所有轴进行给定因子缩放创建的。默认原点为 (0, 0, 0)。原始矩阵不会被修改。

DOMMatrixReadOnly.scaleNonUniform() 已弃用

返回一个新的 DOMMatrix,该矩阵是通过将指定的缩放应用于 X、Y 和 Z 轴创建的,中心位于给定的原点。默认情况下,Y 轴和 Z 轴的缩放因子都为 1,但 X 轴的缩放因子必须指定。默认原点为 (0, 0, 0)。原始矩阵不会被更改。

DOMMatrixReadOnly.skewX()

返回一个新的 DOMMatrix,该矩阵是通过将指定的倾斜变换应用于源矩阵沿其 X 轴创建的。原始矩阵不会被修改。

DOMMatrixReadOnly.skewY()

返回一个新的 DOMMatrix,该矩阵是通过将指定的倾斜变换应用于源矩阵沿其 Y 轴创建的。原始矩阵不会被修改。

DOMMatrixReadOnly.toFloat32Array()

返回一个新的 Float32Array,该数组包含所有 16 个元素(m11m12m13m14m21m22m23m24m31m32m33m34m41m42m43m44),这些元素构成了矩阵。这些元素以单精度浮点数的形式存储在数组中,以列优先(列序访问或“colex”)顺序存储。(换句话说,从上到下沿着第一列,然后沿着第二列,依此类推。)

DOMMatrixReadOnly.toFloat64Array()

返回一个新的 Float64Array,该数组包含所有 16 个元素(m11m12m13m14m21m22m23m24m31m32m33m34m41m42m43m44),这些元素构成了矩阵。这些元素以双精度浮点数的形式存储在数组中,以列优先(列序访问或“colex”)顺序存储。(换句话说,从上到下沿着第一列,然后沿着第二列,依此类推。)

DOMMatrixReadOnly.toJSON()

返回 DOMMatrixReadOnly 对象的 JSON 表示形式。

DOMMatrixReadOnly.toString()

创建并返回一个字符串,该字符串包含矩阵的 CSS 矩阵语法字符串表示形式,使用适当的 CSS 矩阵表示法。有关此语法的详细信息,请参阅 matrix() CSS 函数。

对于 2D 矩阵,将列出元素 af,总共六个值,形式为 matrix(a, b, c, d, e, f)

对于 3D 矩阵,返回的字符串包含所有 16 个元素,并采用 matrix3d(m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44) 的形式。有关 3D 表示法语法的详细信息,请参阅 CSS matrix3d() 函数。

如果矩阵中的任何元素是非有限的(即使在 2D 矩阵的情况下,非有限值是在 2D 矩阵表示形式中未使用的元素中),则会抛出 InvalidStateError 异常。

DOMMatrixReadOnly.transformPoint()

使用矩阵转换指定的点,返回一个新的 DOMPoint 对象,该对象包含转换后的点。矩阵和原始点都不会被更改。

DOMMatrixReadOnly.translate()

返回一个新的 DOMMatrix,该矩阵包含通过使用指定向量平移源矩阵计算的矩阵。默认情况下,向量为 (0, 0, 0)。原始矩阵不会被更改。

静态方法

fromFloat32Array()

根据单精度(32 位)浮点值的数组创建一个新的可变 DOMMatrix 对象。如果数组有六个值,则结果是一个 2D 矩阵;如果数组有 16 个值,则结果是一个 3D 矩阵。否则,将抛出 TypeError 异常。

fromFloat64Array()

根据双精度(64 位)浮点值的数组创建一个新的可变 DOMMatrix 对象。如果数组有六个值,则结果是一个 2D 矩阵;如果数组有 16 个值,则结果是一个 3D 矩阵。否则,将抛出 TypeError 异常。

fromMatrix()

使用现有的矩阵或提供其属性值的物体创建一个新的可变 DOMMatrix 对象。如果没有指定矩阵,则矩阵将被初始化,其所有元素都设置为 0除了右下角元素和其左上角的元素:m33m34。它们具有默认值 1

规范

规范
几何接口模块级别 1
# DOMMatrix

浏览器兼容性

BCD 表格仅在浏览器中加载

另请参阅