Maintainer | diagrams-discuss@googlegroups.com |
---|---|

Safe Haskell | None |

Some convenient functions related to transformations.

- conjugate :: HasLinearMap v => Transformation v -> Transformation v -> Transformation v
- under :: Transformable a => (a -> a) -> Transformation (V a) -> a -> a

# Documentation

conjugate :: HasLinearMap v => Transformation v -> Transformation v -> Transformation vSource

Conjugate one transformation by another. `conjugate t1 t2`

is the
transformation which performs first `t1`

, then `t2`

, then the
inverse of `t1`

.

under :: Transformable a => (a -> a) -> Transformation (V a) -> a -> aSource

Carry out some transformation "under" another one: `f ``

first applies `under`

`
t`t`

, then `f`

, then the inverse of `t`

. For
example,

is the transformation which scales by a factor of 2 along the
diagonal line y = x.
`scaleX`

2 ``under`

` `rotationBy`

(-1/8 :: CircleFrac)

Note that

(transform t2) `under` t1 == transform (conjugate t1 t2)

for all transformations `t1`

and `t2`

.