Chart-1.9: A library for generating 2D Charts and Plots

Graphics.Rendering.Chart.Drawing

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:

• PointStyle

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

# Point Types and Drawing

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

Abstract data type for the style of a plotted point.

Constructors

 PointStyle Fields_point_color :: AlphaColour DoubleThe color to fill the point with._point_border_color :: AlphaColour DoubleThe color to stroke the outline with._point_border_width :: DoubleThe width of the outline._point_radius :: DoubleThe radius of the tightest surrounding circle of the point._point_shape :: PointShapeThe shape.

Instances

 Source # Default style to use for points. Methods

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.

Align the path using the environment's alignment function for coordinates. This is generally useful when filling. See alignPath and getCoordAlignFn.

Align the path using the environment's alignment function for points. This is generally useful when stroking. See alignPath and getPointAlignFn.

The points will be aligned by the getCoordAlignFn, so that when drawing bitmaps, the edges of the region will fall between pixels.

The points will be aligned by the getPointAlignFn, so that when drawing bitmaps, 1 pixel wide lines will be centred on the pixels.

Align the point using the environment's alignment function for coordinates. See getCoordAlignFn.

Align the point using the environment's alignment function for points. See getPointAlignFn.

Draw lines between the specified points.

fillPointPath :: [Point] -> BackendProgram () Source #

Fill the region with the given corners.

# Transformation and Style Helpers

Apply a local rotation. The angle is given in radians.

Apply a local translation.

Apply a local scale.

Apply a local scale on the x-axis.

Apply a local scale on the y-axis.

Changes the LineStyle and FillStyle to comply with the given PointStyle.

# Text Drawing

Draw a line of text that is aligned at a different anchor point. See drawText.

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.

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.

Return the bounding rectangle for a text string positioned where it would be drawn by drawText. See textSize.

Get the width and height of the string when rendered. See textSize.

# Style Helpers

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

Fill style that fill everything this the given colour.