Graphics.Rendering.Cairo.Matrix
 Portability portable Stability experimental Maintainer p.martini@neuralnoise.com
Description
Matrix math
Synopsis
 data Matrix = Matrix !Double !Double !Double !Double !Double !Double type MatrixPtr = Ptr Matrix identity :: Matrix translate :: Double -> Double -> Matrix -> Matrix scale :: Double -> Double -> Matrix -> Matrix rotate :: Double -> Matrix -> Matrix transformDistance :: Matrix -> (Double, Double) -> (Double, Double) transformPoint :: Matrix -> (Double, Double) -> (Double, Double) scalarMultiply :: Double -> Matrix -> Matrix adjoint :: Matrix -> Matrix invert :: Matrix -> Matrix
Documentation
data Matrix

Representation of a 2-D affine transformation.

The Matrix type represents a 2x2 transformation matrix along with a translation vector. Matrix a1 a2 b1 b2 c1 c2 describes the transformation of a point with coordinates x,y that is defined by

```   / x' \  =  / a1 b1 \  / x \  + / c1 \
\ y' /     \ a2 b2 /  \ y /    \ c2 /
```

or

```   x' =  a1 * x + b1 * y + c1
y' =  a2 * x + b2 * y + c2
```
Constructors
 Matrix !Double !Double !Double !Double !Double !Double
Instances
 Eq Matrix Num Matrix Show Matrix Storable Matrix
type MatrixPtr = Ptr Matrix
identity :: Matrix
translate :: Double -> Double -> Matrix -> Matrix
scale :: Double -> Double -> Matrix -> Matrix
rotate :: Double -> Matrix -> Matrix
transformDistance :: Matrix -> (Double, Double) -> (Double, Double)
transformPoint :: Matrix -> (Double, Double) -> (Double, Double)
scalarMultiply :: Double -> Matrix -> Matrix