| Copyright | (c) Tim Docker 2006 2014 |
|---|---|
| License | BSD-style (see chart/COPYRIGHT) |
| Safe Haskell | None |
| Language | Haskell98 |
Graphics.Rendering.Chart.Drawing
Contents
Description
This module contains basic types and functions used for drawing.
Note that Template Haskell is used to derive accessor functions
(see Lens) for each field of the following data types:
These accessors are not shown in this API documentation. They have
the same name as the field, but with the trailing underscore
dropped. Hence for data field f_::F in type D, they have type
f :: Control.Lens.Lens' D F
Synopsis
- data PointShape
- data PointStyle = PointStyle {}
- drawPoint :: PointStyle -> Point -> BackendProgram ()
- alignPath :: (Point -> Point) -> Path -> Path
- alignFillPath :: Path -> BackendProgram Path
- alignStrokePath :: Path -> BackendProgram Path
- alignFillPoints :: [Point] -> BackendProgram [Point]
- alignStrokePoints :: [Point] -> BackendProgram [Point]
- alignFillPoint :: Point -> BackendProgram Point
- alignStrokePoint :: Point -> BackendProgram Point
- strokePointPath :: [Point] -> BackendProgram ()
- fillPointPath :: [Point] -> BackendProgram ()
- withRotation :: Double -> BackendProgram a -> BackendProgram a
- withTranslation :: Point -> BackendProgram a -> BackendProgram a
- withScale :: Vector -> BackendProgram a -> BackendProgram a
- withScaleX :: Double -> BackendProgram a -> BackendProgram a
- withScaleY :: Double -> BackendProgram a -> BackendProgram a
- withPointStyle :: PointStyle -> BackendProgram a -> BackendProgram a
- withDefaultStyle :: BackendProgram a -> BackendProgram a
- drawTextA :: HTextAnchor -> VTextAnchor -> Point -> String -> BackendProgram ()
- drawTextR :: HTextAnchor -> VTextAnchor -> Double -> Point -> String -> BackendProgram ()
- drawTextsR :: HTextAnchor -> VTextAnchor -> Double -> Point -> String -> BackendProgram ()
- textDrawRect :: HTextAnchor -> VTextAnchor -> Point -> String -> BackendProgram Rect
- textDimension :: String -> BackendProgram RectSize
- defaultColorSeq :: [AlphaColour Double]
- solidLine :: Double -> AlphaColour Double -> LineStyle
- dashedLine :: Double -> [Double] -> AlphaColour Double -> LineStyle
- filledCircles :: Double -> AlphaColour Double -> PointStyle
- hollowCircles :: Double -> Double -> AlphaColour Double -> PointStyle
- filledPolygon :: Double -> Int -> Bool -> AlphaColour Double -> PointStyle
- hollowPolygon :: Double -> Double -> Int -> Bool -> AlphaColour Double -> PointStyle
- plusses :: Double -> Double -> AlphaColour Double -> PointStyle
- exes :: Double -> Double -> AlphaColour Double -> PointStyle
- stars :: Double -> Double -> AlphaColour Double -> PointStyle
- arrows :: Double -> Double -> Double -> AlphaColour Double -> PointStyle
- solidFillStyle :: AlphaColour Double -> FillStyle
- module Graphics.Rendering.Chart.Backend
- point_color :: Lens' PointStyle (AlphaColour Double)
- point_border_color :: Lens' PointStyle (AlphaColour Double)
- point_border_width :: Lens' PointStyle Double
- point_radius :: Lens' PointStyle Double
- point_shape :: Lens' PointStyle PointShape
Point Types and Drawing
data PointShape Source #
The different shapes a point can have.
Constructors
| PointShapeCircle | A circle. |
| PointShapePolygon Int Bool | Number of vertices and is right-side-up? |
| PointShapePlus | A plus sign. |
| PointShapeCross | A cross. |
| PointShapeStar | Combination of a cross and a plus. |
| PointShapeArrowHead Double | |
| PointShapeEllipse Double Double | Ratio of minor to major axis and rotation |
data PointStyle Source #
Abstract data type for the style of a plotted point.
Constructors
| PointStyle | |
Fields
| |
Instances
| Default PointStyle Source # | Default style to use for points. |
Defined in Graphics.Rendering.Chart.Drawing Methods def :: PointStyle # | |
Arguments
| :: PointStyle | Style to use when rendering the point. |
| -> Point | Position of the point to render. |
| -> BackendProgram () |
Draw a single point at the given location.
Alignments and Paths
alignPath :: (Point -> Point) -> Path -> Path Source #
Align the path by applying the given function on all points.
alignFillPath :: Path -> BackendProgram Path Source #
Align the path using the environment's alignment function for coordinates.
This is generally useful when filling.
See alignPath and getCoordAlignFn.
alignStrokePath :: Path -> BackendProgram Path Source #
Align the path using the environment's alignment function for points.
This is generally useful when stroking.
See alignPath and getPointAlignFn.
alignFillPoints :: [Point] -> BackendProgram [Point] Source #
The points will be aligned by the getCoordAlignFn, so that
when drawing bitmaps, the edges of the region will fall between
pixels.
alignStrokePoints :: [Point] -> BackendProgram [Point] Source #
The points will be aligned by the getPointAlignFn, so that
when drawing bitmaps, 1 pixel wide lines will be centred on the
pixels.
alignFillPoint :: Point -> BackendProgram Point Source #
Align the point using the environment's alignment function for coordinates.
See getCoordAlignFn.
alignStrokePoint :: Point -> BackendProgram Point Source #
Align the point using the environment's alignment function for points.
See getPointAlignFn.
strokePointPath :: [Point] -> BackendProgram () Source #
Draw lines between the specified points.
fillPointPath :: [Point] -> BackendProgram () Source #
Fill the region with the given corners.
Transformation and Style Helpers
withRotation :: Double -> BackendProgram a -> BackendProgram a Source #
Apply a local rotation. The angle is given in radians.
withTranslation :: Point -> BackendProgram a -> BackendProgram a Source #
Apply a local translation.
withScale :: Vector -> BackendProgram a -> BackendProgram a Source #
Apply a local scale.
withScaleX :: Double -> BackendProgram a -> BackendProgram a Source #
Apply a local scale on the x-axis.
withScaleY :: Double -> BackendProgram a -> BackendProgram a Source #
Apply a local scale on the y-axis.
withPointStyle :: PointStyle -> BackendProgram a -> BackendProgram a Source #
Changes the LineStyle and FillStyle to comply with
the given PointStyle.
withDefaultStyle :: BackendProgram a -> BackendProgram a Source #
Text Drawing
drawTextA :: HTextAnchor -> VTextAnchor -> Point -> String -> BackendProgram () Source #
Draw a line of text that is aligned at a different anchor point.
See drawText.
drawTextR :: HTextAnchor -> VTextAnchor -> Double -> Point -> String -> BackendProgram () Source #
Draw a textual label anchored by one of its corners
or edges, with rotation. Rotation angle is given in degrees,
rotation is performed around anchor point.
See drawText.
drawTextsR :: HTextAnchor -> VTextAnchor -> Double -> Point -> String -> BackendProgram () Source #
Draw a multi-line textual label anchored by one of its corners
or edges, with rotation. Rotation angle is given in degrees,
rotation is performed around anchor point.
See drawText.
textDrawRect :: HTextAnchor -> VTextAnchor -> Point -> String -> BackendProgram Rect Source #
textDimension :: String -> BackendProgram RectSize Source #
Get the width and height of the string when rendered.
See textSize.
Style Helpers
defaultColorSeq :: [AlphaColour Double] Source #
The default sequence of colours to use when plotings different data sets in a graph.
Arguments
| :: Double | Width of line. |
| -> AlphaColour Double | Colour of line. |
| -> LineStyle |
Create a solid line style (not dashed).
Arguments
| :: Double | Width of line. |
| -> [Double] | The dash pattern in device coordinates. |
| -> AlphaColour Double | Colour of line. |
| -> LineStyle |
Create a dashed line style.
Arguments
| :: Double | Radius of circle. |
| -> AlphaColour Double | Fill colour. |
| -> PointStyle |
Style for filled circle points.
Arguments
| :: Double | Radius of circle. |
| -> Double | Thickness of line. |
| -> AlphaColour Double | |
| -> PointStyle |
Style for stroked circle points.
Arguments
| :: Double | Radius of circle. |
| -> Int | Number of vertices. |
| -> Bool | Is right-side-up? |
| -> AlphaColour Double | Fill color. |
| -> PointStyle |
Style for filled polygon points.
Arguments
| :: Double | Radius of circle. |
| -> Double | Thickness of line. |
| -> Int | Number of vertices. |
| -> Bool | Is right-side-up? |
| -> AlphaColour Double | Colour of line. |
| -> PointStyle |
Style for stroked polygon points.
Arguments
| :: Double | Radius of tightest surrounding circle. |
| -> Double | Thickness of line. |
| -> AlphaColour Double | Color of line. |
| -> PointStyle |
Plus sign point style.
Arguments
| :: Double | Radius of circle. |
| -> Double | Thickness of line. |
| -> AlphaColour Double | Color of line. |
| -> PointStyle |
Cross point style.
Arguments
| :: Double | Radius of circle. |
| -> Double | Thickness of line. |
| -> AlphaColour Double | Color of line. |
| -> PointStyle |
Combination of plus and cross point style.
Arguments
| :: Double | Radius of circle. |
| -> Double | Rotation (Tau) |
| -> Double | Thickness of line. |
| -> AlphaColour Double | Color of line. |
| -> PointStyle |
solidFillStyle :: AlphaColour Double -> FillStyle Source #
Fill style that fill everything this the given colour.