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.

Synopsis

# Path builder

data PathBuilder a Source #

Use a path builder to construct a value of type TPath. Use bpath for this purpose.

Instances

 Source # Methods(>>=) :: PathBuilder a -> (a -> PathBuilder b) -> PathBuilder b #(>>) :: PathBuilder a -> PathBuilder b -> PathBuilder b #return :: a -> PathBuilder a # Source # Methodsfmap :: (a -> b) -> PathBuilder a -> PathBuilder b #(<\$) :: a -> PathBuilder b -> PathBuilder a # Source # Methodspure :: a -> PathBuilder a #(<*>) :: PathBuilder (a -> b) -> PathBuilder a -> PathBuilder b #(*>) :: PathBuilder a -> PathBuilder b -> PathBuilder b #(<*) :: PathBuilder a -> PathBuilder b -> PathBuilder a #

Build a path using a starting point and a PathBuilder.

# Builder functions

Line from the current point to the given one.

Rectangle with the current point as one cornder and the given point as the opposite corner.

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.

Text centered at the current point.