Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New pages: DOMMatrix.invert() #37172

Merged
merged 7 commits into from
Dec 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 50 additions & 0 deletions files/en-us/web/api/dommatrix/invertself/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
---
title: "DOMMatrix: invertSelf() method"
short-title: invertSelf()
slug: Web/API/DOMMatrix/invertSelf
page-type: web-api-instance-method
browser-compat: api.DOMMatrix.invertSelf
---

{{APIRef("Geometry Interfaces")}}{{AvailableInWorkers}}

The **`invertSelf()`** method of the {{domxref("DOMMatrix")}} interface inverts the original matrix. If the matrix cannot be inverted, the new matrix's components are all set to `NaN` and its {{domxref("DOMMatrix.is2D", "is2D")}} property is set to `false`.

To invert a matrix without mutating it, see {{domxref("DOMMatrixReadOnly.inverse()")}}
estelle marked this conversation as resolved.
Show resolved Hide resolved

## Syntax

```js-nolint
DOMMatrix.invertSelf()
```

### Return value

A {{domxref("DOMMatrix")}}.

## Examples

In this example, we create a matrix with a rotation of 30deg. Then invert it, resulting in a rotation of -30deg.

```js
const matrix = new DOMMatrix().rotate(30);
console.log(matrix.toString());
// output: matrix(0.866, 0.5, -0.5, 0.866, 0, 0)
matrix.invertSelf();
console.log(matrix.toString());
// output: matrix(0.866, -0.5, 0.5, 0.866, 0, 0)
```

## Specifications

{{Specifications}}

## Browser compatibility

{{Compat}}

## See also

- {{domxref("DOMMatrixReadOnly.inverse()")}}
- CSS {{CSSxRef("transform-function/matrix", "matrix()")}} function
- CSS {{CSSxRef("transform-function/matrix3d", "matrix3d()")}} function
2 changes: 1 addition & 1 deletion files/en-us/web/api/dommatrixreadonly/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ _This interface doesn't inherit any methods. None of the following methods alter
- {{domxref("DOMMatrixReadOnly.flipY()")}}
- : Returns a new {{domxref("DOMMatrix")}} created by flipping the source matrix around its Y-axis. This is equivalent to multiplying the matrix by `DOMMatrix(1, 0, 0, -1, 0, 0)`. The original matrix is not modified.
- {{domxref("DOMMatrixReadOnly.inverse()")}}
- : Returns a new {{domxref("DOMMatrix")}} created by inverting the source matrix. If the matrix cannot be inverted, the new matrix's components are all set to `NaN` and its `is2D` property is set to `false`. The original matrix is not altered.
- : Returns a new {{domxref("DOMMatrix")}} created by inverting the source matrix. The original matrix is not altered.
- {{domxref("DOMMatrixReadOnly.multiply()")}}
- : Returns a new {{domxref("DOMMatrix")}} created by computing the dot product of the source matrix and the specified matrix: `A⋅B`. If no matrix is specified as the multiplier, the matrix is multiplied by a matrix in which every element is `0` _except_ the bottom-right corner and the element immediately above and to its left: `m33` and `m34`. These have the default value of `1`. The original matrix is not modified.
- {{domxref("DOMMatrixReadOnly.rotateAxisAngle()")}}
Expand Down
50 changes: 50 additions & 0 deletions files/en-us/web/api/dommatrixreadonly/inverse/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
---
title: "DOMMatrixReadOnly: inverse() method"
short-title: inverse()
slug: Web/API/DOMMatrixReadOnly/inverse
page-type: web-api-instance-method
browser-compat: api.DOMMatrixReadOnly.inverse
---

{{APIRef("Geometry Interfaces")}}{{AvailableInWorkers}}

The **`inverse()`** method of the {{domxref("DOMMatrixReadOnly")}} interface creates a new matrix which is the inverse of the original matrix. If the matrix cannot be inverted, the new matrix's components are all set to `NaN` and its {{domxref("DOMMatrixReadOnly.is2D", "is2D")}} property is set to `false`. The original matrix is not changed.

To mutate the matrix as you invert it, see {{domxref("DOMMatrix.invertSelf()")}}.

## Syntax

```js-nolint
DOMMatrixReadOnly.inverse()
```

### Return value

A {{domxref("DOMMatrix")}}.

## Examples

```js
const matrix = new DOMMatrixReadOnly().rotate(30);
const invertedMatrix = matrix.inverse();
console.log(matrix.toString());
// output: matrix(0.866, 0.5, -0.5, 0.866, 0, 0)
console.log(invertedMatrix.toString());
// output: matrix(0.866, -0.5, 0.5, 0.866, 0, 0)
```

## Specifications

{{Specifications}}

## Browser compatibility

{{Compat}}

## See also

- {{domxref("DOMMatrix.invertSelf()")}}
- {{domxref("DOMMatrixReadOnly.flipX()")}}
- {{domxref("DOMMatrixReadOnly.flipY()")}}
- CSS {{CSSxRef("transform-function/matrix", "matrix()")}} function
- CSS {{CSSxRef("transform-function/matrix3d", "matrix3d()")}} function
Loading