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

General tools for alignment. Any boundable object with a local origin can be aligned; this includes diagrams, of course, but it also includes paths.

# Generic alignment functions

align :: (HasOrigin a, Boundable a) => V a -> a -> aSource

`align v`

aligns a boundable object along the edge in the
direction of `v`

. That is, it moves the local origin in the
direction of `v`

until it is on the boundary. (Note that if the
local origin is outside the boundary to begin, it may have to
move "backwards".)

alignBy :: (HasOrigin a, Boundable a, Num (Scalar (V a))) => V a -> Scalar (V a) -> a -> aSource

`align v d a`

moves the origin of `a`

along the vector `v`

. If ```
d
= 1
```

, the origin is moved to the boundary in the direction of
`v`

; if `d = -1`

, it moves to the boundary in the direction of
the negation of `v`

. Other values of `d`

interpolate linearly
(so for example, `d = 0`

centers the origin along the direction
of `v`

).