| Portability | GHC |
|---|---|
| Stability | highly unstable |
| Maintainer | Stephen Tetley <stephen.tetley@gmail.com> |
Wumpus.Tree
Description
- type TreePicture = Picture Double
- data DrawingContext = DrawingContext {}
- standardContext :: FontSize -> DrawingContext
- data ScaleFactors = ScaleFactors {}
- uniformScaling :: Double -> ScaleFactors
- drawTreePicture :: (a -> TreeNode) -> DrawingContext -> ScaleFactors -> Tree a -> TreePicture
- writeEPS_TreePicture :: FilePath -> TreePicture -> IO ()
- writeSVG_TreePicture :: FilePath -> TreePicture -> IO ()
- charNode :: Char -> TreeNode
- textNode :: String -> TreeNode
- circleNode :: RGBi -> a -> TreeNode
- diskNode :: RGBi -> a -> TreeNode
The type of rendered trees
type TreePicture = Picture DoubleSource
A rendered tree - alias for for Picture Double in
Wumpus-Core.
Render a Data.Tree to a TreePicture
data ScaleFactors Source
Customize the size of the printed tree.
A tree is designed with a height of 1 unit between parent and child nodes.
The y-scaling factor multiplies the unit height, a scaling factor of 30 represents 30 points.
In the horizontal, 1 unit is the smallest possible distance between child nodes.
Constructors
| ScaleFactors | |
Instances
uniformScaling :: Double -> ScaleFactorsSource
Build uniform x- and y-scaling factors, i.e. x == y .
drawTreePicture :: (a -> TreeNode) -> DrawingContext -> ScaleFactors -> Tree a -> TreePictureSource
drawTreePicture : draw_fun * attr * scale_factors * tree -> TreePicture
The rendering function.
draw_fun renders the individual nodes. Usually charNode,
circleNode
attr is the font size (translates to node size), stroke
colour, fill colour.
scale_factors scales the distances between parent and child
(y-scale) and sibling nodes (x-scale).
tree is the input tree to be rendered.
Output to file
writeEPS_TreePicture :: FilePath -> TreePicture -> IO ()Source
Output a TreePicture, generating an EPS file.
writeSVG_TreePicture :: FilePath -> TreePicture -> IO ()Source
Output a TreePicture, generating a SVG file.
Drawing nodes
charNode :: Char -> TreeNodeSource
Render tree nodes with a single character.
Useful for rendering Data.Tree Char .
textNode :: String -> TreeNodeSource
Tree nodes with a text label.
Useful for rendering Data.Tree String .
Note the width of the label is not accounted for in the design of the tree. Labels with long texts may overlap. Also, only a single line of text is printed - any text after the first newline character will be dropped.
circleNode :: RGBi -> a -> TreeNodeSource
Tree nodes with a stroked circle.
Suitable for printing the shape of a tree, ignoring the data.