| Copyright | (c) Tim Docker 2006 2014 |
|---|---|
| License | BSD-style (see chart/COPYRIGHT) |
| Safe Haskell | Safe |
| Language | Haskell98 |
Graphics.Rendering.Chart.Geometry
Contents
Description
- data Rect = Rect Point Point
- data Point = Point {}
- data Vector = Vector {}
- type RectSize = (Double, Double)
- type Range = (Double, Double)
- pointToVec :: Point -> Vector
- mkrect :: Point -> Point -> Point -> Point -> Rect
- rectPath :: Rect -> Path
- pvadd :: Point -> Vector -> Point
- pvsub :: Point -> Vector -> Point
- psub :: Point -> Point -> Vector
- vangle :: Vector -> Double
- vlen :: Vector -> Double
- vscale :: Double -> Vector -> Vector
- within :: Point -> Rect -> Bool
- intersectRect :: Limit Rect -> Limit Rect -> Limit Rect
- data RectEdge
- data Limit a
- type PointMapFn x y = (Limit x, Limit y) -> Point
- data Path
- lineTo :: Point -> Path
- moveTo :: Point -> Path
- lineTo' :: Double -> Double -> Path
- moveTo' :: Double -> Double -> Path
- arc :: Point -> Double -> Double -> Double -> Path
- arc' :: Double -> Double -> Double -> Double -> Double -> Path
- arcNeg :: Point -> Double -> Double -> Double -> Path
- arcNeg' :: Double -> Double -> Double -> Double -> Double -> Path
- close :: Path
- foldPath :: Monoid m => (Point -> m) -> (Point -> m) -> (Point -> Double -> Double -> Double -> m) -> (Point -> Double -> Double -> Double -> m) -> m -> Path -> m
- makeLinesExplicit :: Path -> Path
- transformP :: Matrix -> Point -> Point
- scaleP :: Vector -> Point -> Point
- rotateP :: Double -> Point -> Point
- translateP :: Vector -> Point -> Point
- data Matrix = Matrix {}
- identity :: Matrix
- rotate :: Double -> Matrix -> Matrix
- scale :: Vector -> Matrix -> Matrix
- translate :: Vector -> Matrix -> Matrix
- scalarMultiply :: Double -> Matrix -> Matrix
- adjoint :: Matrix -> Matrix
- invert :: Matrix -> Matrix
Points and Vectors
A rectangle is defined by two points.
A point in two dimensions.
A vector in two dimensions.
mkrect :: Point -> Point -> Point -> Point -> Rect Source #
Create a rectangle based upon the coordinates of 4 points.
Paths
The path type used by Charts.
A path can consist of several subpaths. Each is started by a MoveTo operation. All subpaths are open, except the last one, which may be closed using the Close operation. When filling a path all subpaths are closed implicitly.
Closing a subpath means that a line is drawn from the end point to the start point of the subpath.
If a Arc (or ArcNeg) is drawn a implicit line from the last end point of the subpath is drawn to the beginning of the arc. Another implicit line is drawn from the end of an arc to the beginning of the next path segment.
The beginning of a subpath is either (0,0) or set by a MoveTo instruction. If the first subpath is started with an arc the beginning of that subpath is the beginning of the arc.
lineTo :: Point -> Path Source #
Move the paths pointer to the given location and draw a straight line while doing so.
Arguments
| :: Point | Center point of the circle arc. |
| -> Double | Radius of the circle. |
| -> Double | Angle to start drawing at, in radians. |
| -> Double | Angle to stop drawing at, in radians. |
| -> Path |
Draw the arc of a circle. A straight line connects the end of the previous path with the beginning of the arc. The zero angle points in direction of the positive x-axis. Angles increase in clock-wise direction. If the stop angle is smaller then the start angle it is increased by multiples of 2 * pi until is is greater or equal.
arcNeg :: Point -> Double -> Double -> Double -> Path Source #
Like arc, but draws from the stop angle to the start angle instead of between them.
Arguments
| :: Monoid m | |
| => (Point -> m) | MoveTo |
| -> (Point -> m) | LineTo |
| -> (Point -> Double -> Double -> Double -> m) | Arc |
| -> (Point -> Double -> Double -> Double -> m) | ArcNeg |
| -> m | Close |
| -> Path | Path to fold |
| -> m |
Fold the given path to a monoid structure.
makeLinesExplicit :: Path -> Path Source #
Enriches the path with explicit instructions to draw lines, that otherwise would be implicit. See Path for details about what lines in paths are implicit.
Matrices
rotateP :: Double -> Point -> Point Source #
Rotate a point around the origin. The angle is given in radians.
Copied from Graphics.Rendering.Cairo.Matrix
Constructors
| Matrix | |
rotate :: Double -> Matrix -> Matrix Source #
Copied from Graphics.Rendering.Cairo.Matrix Rotations angle is given in radians.