DOMMatrix: DOMMatrix() constructor

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.

Note: This feature is available in Web Workers.

Hàm khởi tạo DOMMatrix() tạo một đối tượng DOMMatrix mới biểu diễn ma trận 4x4, phù hợp cho các phép toán 2D và 3D.

Cú pháp

js
new DOMMatrix()
new DOMMatrix(initString)
new DOMMatrix(initArray)

Tham số

initString Optional

Một chuỗi biểu diễn ma trận 2D hoặc 3D theo định dạng CSS matrix() hoặc matrix3d().

initArray Optional

Một mảng chứa 6 hoặc 16 số theo thứ tự cột chính. Các độ dài mảng khác sẽ ném ra TypeError.

  • Mảng 6 phần tử được hiểu là các thành phần ma trận [m11, m12, m21, m22, m41, m42], tạo ma trận 2D.
  • Mảng 16 phần tử được hiểu là các thành phần ma trận [m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44], tạo ma trận 3D.

Nếu tham số này bị bỏ qua, ma trận đơn vị sẽ được tạo, tương đương với [1, 0, 0, 1, 0, 0].

Nếu tham số này được cung cấp dưới dạng Float32Array hoặc Float64Array, hãy cân nhắc sử dụng các phương thức tĩnh hiệu quả hơn DOMMatrix.fromFloat32Array() hoặc DOMMatrix.fromFloat64Array() thay thế.

Giá trị trả về

Một đối tượng DOMMatrix mới.

Ngoại lệ

TypeError

Được ném ra nếu tham số không phải là chuỗi hoặc mảng có độ dài khác 6 hoặc 16.

SyntaxError

Được ném ra nếu tham số chuỗi không ở định dạng CSS matrix() hoặc matrix3d() hợp lệ.

Ví dụ

Ví dụ này tạo một DOMMatrix để sử dụng làm đối số khi gọi DOMPointReadOnly.matrixTransform().

js
const point = new DOMPoint(5, 4);
const scaleX = 2;
const scaleY = 3;
const translateX = 12;
const translateY = 8;
const angle = Math.PI / 2;
const matrix = new DOMMatrix([
  Math.cos(angle) * scaleX,
  Math.sin(angle) * scaleX,
  -Math.sin(angle) * scaleY,
  Math.cos(angle) * scaleY,
  translateX,
  translateY,
]);
const transformedPoint = point.matrixTransform(matrix);

Thông số kỹ thuật

Specification
Geometry Interfaces Module Level 1
# dom-dommatrix-dommatrix

Tương thích trình duyệt

Xem thêm