DOMPointReadOnly:matrixTransform() 方法

Baseline 已广泛支持

此特性已经十分成熟,可在许多设备和浏览器版本上使用。自 2020 年 7 月以来,它已在各大浏览器中可用。

注意:此功能在 Web Workers 中可用。

DOMPointReadOnly 接口的 matrixTransform() 方法将指定为对象的矩阵变换应用于 DOMPointReadOnly 对象,创建并返回一个新的 DOMPointReadOnly 对象。矩阵和点都不会被修改。

如果作为参数传递的矩阵是 2D 的(is2Dtrue),则这是一个 2D 变换,点的 z 坐标将为 0,点的 w 透视将为 1。否则,这是一个 3D 变换。

您还可以使用 DOMMatrixReadOnly.transformPoint() 方法,使用点和矩阵创建一个新的 DOMPoint

语法

js
matrixTransform()
matrixTransform(matrix)

参数

matrix

一个 DOMMatrixDOMMatrixReadOnly 对象。

返回值

一个新的 DOMPoint 对象。

示例

2D 变换

在此示例中,我们将一个 2D 矩阵变换应用于 DOMPointReadOnly,创建一个新的 DOMPoint

js
const originalPoint = new DOMPointReadOnly(10, 20); // DOMPointReadOnly {x: 10, y: 20, z: 0, w: 1}
const matrix = new DOMMatrix([1, 0, 0, 1, 15, 30]);

const transformedPoint = originalPoint.matrixTransform(matrix); // DOMPoint {x: 25, y: 50, z: 0, w: 1}

console.log(transformedPoint.toJSON()); // output: {x: 25, y: 50, z: 0, w: 1}

3D 变换

在此示例中,我们将一个 3D 矩阵变换应用于 DOMPointReadOnly

js
const point = new DOMPointReadOnly(5, 10); // DOMPointReadOnly {x: 5, y: 10, z: 0, w: 1}
const matrix3D = new DOMMatrix().translate(0, 0, 10);
const transformedPoint = point.matrixTransform(matrix3D); // DOMPoint {x: 5, y: 10, z: 10, w: 1}

规范

规范
Geometry Interfaces Module Level 1
# dom-dompointreadonly-matrixtransform

浏览器兼容性

另见