# IMatrix interface

Namespace: [Eto.Drawing](https://eto.picoe.ca/api/namespace/eto.drawing.md) · Assembly: [Eto](https://eto.picoe.ca/api/assembly/eto.md)

```cs
public interface IMatrix : IControlObjectSource, IDisposable
```

Defines a matrix used for transforms in [Graphics](https://eto.picoe.ca/api/type/eto.drawing.graphics.md) and [Brushes](https://eto.picoe.ca/api/type/eto.drawing.brushes.md)

**Remarks:** A matrix is defined by six elements that are used to transform a coordinate system. The elements of the matrix are defined as:

| xx yx 0 | | xy yy 0 | | x0 y0 1 |

**Derived types:** [Matrix.IHandler](https://eto.picoe.ca/api/type/eto.drawing.matrix.ihandler.md)

## Properties

- [Elements](https://eto.picoe.ca/api/type/eto.drawing.imatrix/elements.md): Gets the elements of this matrix
- [X0](https://eto.picoe.ca/api/type/eto.drawing.imatrix/x0.md): Gets or sets the value at position [3,1] in the matrix
- [Xx](https://eto.picoe.ca/api/type/eto.drawing.imatrix/xx.md): Gets or sets the value at position [1,1] in the matrix
- [Xy](https://eto.picoe.ca/api/type/eto.drawing.imatrix/xy.md): Gets or sets the value at position [2,1] in the matrix
- [Y0](https://eto.picoe.ca/api/type/eto.drawing.imatrix/y0.md): Gets or sets the value at position [3,2] in the matrix
- [Yx](https://eto.picoe.ca/api/type/eto.drawing.imatrix/yx.md): Gets or sets the value at position [1,2] in the matrix
- [Yy](https://eto.picoe.ca/api/type/eto.drawing.imatrix/yy.md): Gets or sets the value at position [2,2] in the matrix

## Methods

- [Append](https://eto.picoe.ca/api/type/eto.drawing.imatrix/append.md): Append the specified `matrix` to this matrix
- [Clone](https://eto.picoe.ca/api/type/eto.drawing.imatrix/clone.md): Clone this instance
- [Invert](https://eto.picoe.ca/api/type/eto.drawing.imatrix/invert.md): Inverts this matrix
- [Prepend](https://eto.picoe.ca/api/type/eto.drawing.imatrix/prepend.md): Prepend the specified matrix to this matrix
- [Rotate](https://eto.picoe.ca/api/type/eto.drawing.imatrix/rotate.md): Prepend a rotation to the matrix around the origin (0,0)
- [RotateAt](https://eto.picoe.ca/api/type/eto.drawing.imatrix/rotateat.md): Prepend a rotation around the specified point to the matrix
- [Scale](https://eto.picoe.ca/api/type/eto.drawing.imatrix/scale.md): Prepend a scale to the matrix from the origin (0, 0)
- [ScaleAt](https://eto.picoe.ca/api/type/eto.drawing.imatrix/scaleat.md): Prepend a scale to the matrix from the specified point
- [Skew](https://eto.picoe.ca/api/type/eto.drawing.imatrix/skew.md): Prepend a skew to the matrix
- [TransformPoint](https://eto.picoe.ca/api/type/eto.drawing.imatrix/transformpoint.md): (2 overloads) Transforms the specified point using this matrix transform
- [Translate](https://eto.picoe.ca/api/type/eto.drawing.imatrix/translate.md): Prepend a translation to the matrix

## Inherited Members

- From [IControlObjectSource](https://eto.picoe.ca/api/type/eto.icontrolobjectsource.md): [ControlObject](https://eto.picoe.ca/api/type/eto.icontrolobjectsource/controlobject.md)
