# The CairoMatrix class

(PECL cairo >= 0.1.0)

## Introduction

Matrices are used throughout cairo to convert between different coordinate spaces.

## Class synopsis

CairoMatrix {
/* Methods */
public __construct ([ float `$xx` = 1.0 [, float `$yx` = 0.0 [, float `$xy` = 0.0 [, float `$yy` = 1.0 [, float `$x0` = 0.0 [, float `$y0` = 0.0 ]]]]]] )
public static initIdentity ( void ) : void
public static initRotate ( float `$radians` ) : void
public static initScale ( float `$sx` , float `$sy` ) : void
public static initTranslate ( float `$tx` , float `$ty` ) : void
public invert ( void ) : void
public static multiply ( CairoMatrix `$matrix1` , CairoMatrix `$matrix2` ) : CairoMatrix
public rotate ( float `$radians` ) : void
public scale ( float `$sx` , float `$sy` ) : void
public transformDistance ( float `$dx` , float `$dy` ) : array
public transformPoint ( float `$dx` , float `$dy` ) : array
public translate ( float `$tx` , float `$ty` ) : void
}

## Table of Contents

- CairoMatrix::__construct — Creates a new CairoMatrix object
- CairoMatrix::initIdentity — Creates a new identity matrix
- CairoMatrix::initRotate — Creates a new rotated matrix
- CairoMatrix::initScale — Creates a new scaling matrix
- CairoMatrix::initTranslate — Creates a new translation matrix
- CairoMatrix::invert — The invert purpose
- CairoMatrix::multiply — The multiply purpose
- CairoMatrix::rotate — The rotate purpose
- CairoMatrix::scale — Applies scaling to a matrix
- CairoMatrix::transformDistance — The transformDistance purpose
- CairoMatrix::transformPoint — The transformPoint purpose
- CairoMatrix::translate — The translate purpose