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

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
equivalent to a rotation by 120 degrees about the point
`rotateBy`

(1/3) ``under`

` `translationX`

1`(-1,0)`

(you may have to think about this for a minute =).

Note that

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

for all transformations `t1`

and `t2`

.