---
title: "Matrix | Customer's Canvas On-Premises"
canonical: "https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms-model/Matrix/"
---

# Matrix

> Creates a 2D transform matrix.
> 	[ x']   [  m00  m01  m02  ] [ x ]   [ m00x + m01y + m02 ]
> 	[ y'] = [  m10  m11  m12  ] [ y ] = [ m10x + m11y + m12 ]
> 	[ 1 ]   [   0    0    1   ] [ 1 ]   [         1         ]

## Classes

### Matrix

#### Constructors

##### Constructor

```ts
new Matrix(
   m00?, 
   m10?, 
   m01?, 
   m11?, 
   m02?, 
   m12?): Matrix;
```

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `m00?` | `number` |
| `m10?` | `number` |
| `m01?` | `number` |
| `m11?` | `number` |
| `m02?` | `number` |
| `m12?` | `number` |

###### Returns

[`Matrix`](#matrix)

#### Properties

##### m00

```ts
m00: number;
```

##### m01

```ts
m01: number;
```

##### m02

```ts
m02: number;
```

##### m10

```ts
m10: number;
```

##### m11

```ts
m11: number;
```

##### m12

```ts
m12: number;
```

#### Accessors

##### angle

###### Get Signature

```ts
get angle(): number;
```

###### Returns

`number`

##### isIdentity

###### Get Signature

```ts
get isIdentity(): boolean;
```

###### Returns

`boolean`

##### scaleX

###### Get Signature

```ts
get scaleX(): number;
```

###### Returns

`number`

##### scaleY

###### Get Signature

```ts
get scaleY(): number;
```

###### Returns

`number`

##### translateX

###### Get Signature

```ts
get translateX(): number;
```

###### Returns

`number`

##### translateY

###### Get Signature

```ts
get translateY(): number;
```

###### Returns

`number`

#### Methods

##### clone()

```ts
clone(): Matrix;
```

###### Returns

[`Matrix`](#matrix)

##### concatenate()

```ts
concatenate(m): Matrix;
```

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `m` | [`Matrix`](#matrix) |

###### Returns

[`Matrix`](#matrix)

##### equals()

```ts
equals(other): any;
```

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `other` | [`Matrix`](#matrix) |

###### Returns

`any`

##### getInversed()

```ts
getInversed(): Matrix;
```

###### Returns

[`Matrix`](#matrix)

##### rotate()

```ts
rotate(angle): Matrix;
```

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `angle` | `number` |

###### Returns

[`Matrix`](#matrix)

##### rotateAt()

```ts
rotateAt(
   angle, 
   x, 
   y): Matrix;
```

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `angle` | `number` |
| `x` | `number` |
| `y` | `number` |

###### Returns

[`Matrix`](#matrix)

##### scale()

```ts
scale(sx, sy): Matrix;
```

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `sx` | `number` |
| `sy` | `number` |

###### Returns

[`Matrix`](#matrix)

##### scaleRelativeToPoint()

```ts
scaleRelativeToPoint(
   sx, 
   sy, 
   origin): Matrix;
```

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `sx` | `number` |
| `sy` | `number` |
| `origin` | [`PointF`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms-model/PointF.md#pointf) |

###### Returns

[`Matrix`](#matrix)

##### setTransform()

```ts
setTransform(
   m00, 
   m10, 
   m01, 
   m11, 
   m02, 
   m12): void;
```

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `m00` | `number` |
| `m10` | `number` |
| `m01` | `number` |
| `m11` | `number` |
| `m02` | `number` |
| `m12` | `number` |

###### Returns

`void`

##### transformPoint()

```ts
transformPoint(p, clone?): PointF;
```

###### Parameters

| Parameter | Type | Default value |
| ------ | ------ | ------ |
| `p` | [`PointF`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms-model/PointF.md#pointf) | `undefined` |
| `clone` | `boolean` | `false` |

###### Returns

[`PointF`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms-model/PointF.md#pointf)

##### translate()

```ts
translate(dx, dy): Matrix;
```

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `dx` | `number` |
| `dy` | `number` |

###### Returns

[`Matrix`](#matrix)

##### updateObjectByMatrix()

```ts
updateObjectByMatrix(
   object, 
   key1, 
   key2): Object;
```

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `object` | `Object` |
| `key1` | `string` |
| `key2` | `string` |

###### Returns

`Object`
