Copyright | (c) Paolo Martini 2005 |
---|---|
License | BSD-style (see cairo/COPYRIGHT) |
Maintainer | p.martini@neuralnoise.com |
Stability | experimental |
Portability | portable |
Safe Haskell | None |
Language | Haskell98 |
Matrix math
- 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
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
scalarMultiply :: Double -> Matrix -> Matrix Source