Graphics.IFS.Geometry
 Portability non-portable (multi-parameter type classes) Stability experimental Maintainer misc@alpheccar.org
 Contents Types Matrix and Vector Non linear transformations Modules Creating linear transformations Non linear transformations Misc
Description

Description

Some geometry operations used by the IFS

Synopsis
data M a
newtype V a = V (a, a)
type NonLinear a = V a -> V a
newtype NonLinearTransform a = NL (NonLinear a, M a)
class Module a b where
 (<*>) :: a -> b -> b
linear :: Num a => a -> a -> a -> a -> a -> a -> M a
rotation :: Double -> M Double
scaling :: Double -> Double -> M Double
translation :: Double -> Double -> M Double
v0 :: NonLinear Double
v1 :: NonLinear Double
v2 :: NonLinear Double
v3 :: NonLinear Double
v4 :: NonLinear Double
v5 :: NonLinear Double
v6 :: NonLinear Double
v7 :: NonLinear Double
v8 :: NonLinear Double
v9 :: NonLinear Double
v10 :: NonLinear Double
v11 :: NonLinear Double
v12 :: NonLinear Double
startVector :: V Double
inv :: Fractional a => M a -> M a
det :: Num a => M a -> a
Types
Matrix and Vector
data M a
Affine transform on 2x2 space Instances
 Num a => Module a (M a) ??? a => Eq (M a) Num a => Num (M a) ??? a => Show (M a) Fractional a => Module (M a) (IFS a) Num a => Module (M a) (V a)
newtype V a
Vector
Constructors
 V (a, a) Instances
 Num a => Module a (V a) ??? a => Eq (V a) Num a => Num (V a) ??? a => Show (V a) Num a => Module (M a) (V a) Num a => Module (NonLinearTransform a) (V a)
Non linear transformations
type NonLinear a = V a -> V a
A pure non linear transformation
newtype NonLinearTransform a
A non linear transformation with a pure non linear part and an affine one
Constructors
 NL (NonLinear a, M a) Instances
 Num a => Module (NonLinear a) (NonLinearTransform a) Num a => Module (NonLinearTransform a) (V a)
Modules
class Module a b where
Elements which can be transformed by an operator
Methods
 (<*>) :: a -> b -> b Instances
 Num a => Module a (IFS a) Num a => Module a (M a) Num a => Module a (V a) Fractional a => Module (M a) (IFS a) Num a => Module (M a) (V a) Num a => Module (NonLinear a) (IFS a) Num a => Module (NonLinear a) (NonLinearTransform a) Num a => Module (NonLinearTransform a) (V a)
Creating linear transformations
linear
 :: Num a => a a -> a b -> a c -> a d -> a e -> a f -> M a Create a pure affine transformation Linear part: a b c d Affine part: e f
rotation :: Double -> M Double
scaling :: Double -> Double -> M Double
translation :: Double -> Double -> M Double
Non linear transformations
v0 :: NonLinear Double
Linear
v1 :: NonLinear Double
Sinusoidal
v2 :: NonLinear Double
Spherical
v3 :: NonLinear Double
Swirl
v4 :: NonLinear Double
Horseshoe
v5 :: NonLinear Double
Polar
v6 :: NonLinear Double
Handkerchief
v7 :: NonLinear Double
Heart
v8 :: NonLinear Double
Disc
v9 :: NonLinear Double
Spiral
v10 :: NonLinear Double
Hyperbolic
v11 :: NonLinear Double
Diamond
v12 :: NonLinear Double
Ex
Misc
startVector :: V Double
Start vector used to initiate the generation of a random trajectory
inv :: Fractional a => M a -> M a
det :: Num a => M a -> a
Produced by Haddock version 0.8