cairoMatrixInit(xx, yx, xy, yy, x0, y0)
cairoMatrixInitIdentity()
cairoMatrixInitTranslate(tx, ty)
cairoMatrixInitScale(sx, sy)
cairoMatrixInitRotate(radians)
cairoMatrixTranslate(matrix, tx, ty)
cairoMatrixScale(matrix, sx, sy)
cairoMatrixRotate(matrix, radians)
cairoMatrixInvert(matrix)
cairoMatrixMultiply(result, a, b)
cairoMatrixTransformDistance(matrix, dx, dy)
cairoMatrixTransformPoint(matrix, x, y)CairoMatrix is used throughout cairo to convert between different
    coordinate spaces.  A CairoMatrix holds an affine transformation,
    such as a scale, rotation, shear, or a combination of these.
    The transformation of a point (x,y)
    is given by:
        x_new = xx * x + xy * y + x0;
    y_new = yx * x + yy * y + y0;   
    The current transformation matrix of a Cairo, represented as a
    CairoMatrix, defines the transformation from user-space
    coordinates to device-space coordinates. See cairoGetMatrix and
    cairoSetMatrix.