Maintainer | diagrams-discuss@googlegroups.com |
---|---|
Safe Haskell | Safe-Infered |
Alignment combinators specialized for two dimensions. See Diagrams.Align for more general alignment combinators.
The basic idea is that alignment is achieved by moving diagrams'
local origins relative to their envelopes. For example, to align
several diagrams along their tops, we first move their local
origins to the upper edge of their envelopes (using e.g. map
), and then put them together with their local origins
along a horizontal line (using e.g. alignTop
hcat
from
Diagrams.TwoD.Combinators).
- alignL :: (Alignable a, V a ~ R2) => a -> a
- alignR :: (Alignable a, V a ~ R2) => a -> a
- alignT :: (Alignable a, V a ~ R2) => a -> a
- alignB :: (Alignable a, V a ~ R2) => a -> a
- alignTL, alignBR, alignBL, alignTR :: (Alignable a, V a ~ R2) => a -> a
- alignX :: (Alignable a, V a ~ R2) => Double -> a -> a
- alignY :: (Alignable a, V a ~ R2) => Double -> a -> a
- centerX :: (Alignable a, V a ~ R2) => a -> a
- centerY :: (Alignable a, V a ~ R2) => a -> a
- centerXY :: (Alignable a, V a ~ R2) => a -> a
Absolute alignment
alignL :: (Alignable a, V a ~ R2) => a -> aSource
Align along the left edge, i.e. translate the diagram in a horizontal direction so that the local origin is on the left edge of the envelope.
Relative alignment
alignX :: (Alignable a, V a ~ R2) => Double -> a -> aSource
alignX
moves the local origin horizontally as follows:
-
alignX (-1)
moves the local origin to the left edge of the envelope; -
align 1
moves the local origin to the right edge; - any other argument interpolates linearly between these. For
example,
alignX 0
centers,alignX 2
moves the origin one "radius" to the right of the right edge, and so on.
alignY :: (Alignable a, V a ~ R2) => Double -> a -> aSource
Like alignX
, but moving the local origin vertically, with an
argument of 1
corresponding to the top edge and (-1)
corresponding
to the bottom edge.