| Safe Haskell | Safe |
|---|---|
| Language | Haskell2010 |
Text.LaTeX.Packages.TikZ.PathBuilder
Contents
Description
This module provides a monadic interface to build TPath values.
It does so using PathBuilders. The construction of a PathBuilder
is equivalent to the construction of a TPath by hand, but with
a sometimes more convenient syntax.
For example, this path corresponds to a triangle:
trianglePath :: TPath trianglePath = bpath (pointAtXY (-1) 0) $ do line $ pointAtXY 1 0 line $ pointAtXY 0 1 pcycle
The equivalent syntax created by hand would be:
trianglePath :: TPath trianglePath = Cycle $ Start (pointAtXY (-1) 0) ->- pointAtXY 1 0 ->- pointAtXY 0 1
The Cycle constructor at the beginning may seem unintuitive, since we are building
the path from left to right. In the PathBuilder monad, the instructions are always
written in order.
- data PathBuilder a
- bpath :: TPoint -> PathBuilder a -> TPath
- line :: TPoint -> PathBuilder ()
- pcycle :: PathBuilder ()
- rectangle :: TPoint -> PathBuilder ()
- circle :: Double -> PathBuilder ()
- ellipse :: Double -> Double -> PathBuilder ()
- node :: LaTeX -> PathBuilder ()
- grid :: [GridOption] -> TPoint -> PathBuilder ()
Path builder
data PathBuilder a Source #
Instances
bpath :: TPoint -> PathBuilder a -> TPath Source #
Build a path using a starting point and a PathBuilder.
Builder functions
line :: TPoint -> PathBuilder () Source #
Line from the current point to the given one.
pcycle :: PathBuilder () Source #
rectangle :: TPoint -> PathBuilder () Source #
Rectangle with the current point as one cornder and the given point as the opposite corner.
circle :: Double -> PathBuilder () Source #
Circle with the given radius centered at the current point.
Arguments
| :: Double | Half width of the ellipse. |
| -> Double | Half height of the ellipse. |
| -> PathBuilder () |
Ellipse with width and height described by the arguments and centered at the current point.
node :: LaTeX -> PathBuilder () Source #
Text centered at the current point.
grid :: [GridOption] -> TPoint -> PathBuilder () Source #