diagrams-lib-1.2.0.9: Embedded domain-specific language for declarative graphics

Copyright(c) 2011 diagrams-lib team (see LICENSE)
LicenseBSD-style (see LICENSE)
Maintainerdiagrams-discuss@googlegroups.com
Safe HaskellNone
LanguageHaskell2010

Diagrams.TwoD.Types

Contents

Description

Basic types for two-dimensional Euclidean space.

Synopsis

2D Euclidean space

data R2

The two-dimensional Euclidean vector space R^2. This type is intentionally abstract.

r2 (3,4) :: R2
3 ^& 4    :: R2

Note that Diagrams.Coordinates is not re-exported by Diagrams.Prelude and must be explicitly imported.

  • To construct the vector from the origin to a point p, use p .-. origin.
  • To convert a vector v into the point obtained by following v from the origin, use origin .+^ v.
  • To convert a vector back into a pair of components, use unv2 or coords (from Diagrams.Coordinates). These are typically used in conjunction with the ViewPatterns extension:
foo (unr2 -> (x,y)) = ...
foo (coords -> x :& y) = ...

Constructors

R2 !Double !Double 

r2 :: (Double, Double) -> R2

Construct a 2D vector from a pair of components. See also &.

unr2 :: R2 -> (Double, Double)

Convert a 2D vector back into a pair of components. See also coords.

mkR2 :: Double -> Double -> R2

Curried form of r2.

type P2 = Point R2

Points in R^2. This type is intentionally abstract.

p2 (3,4)  :: P2
3 ^& 4    :: P2
  • To construct a point from a vector v, use origin .+^ v.
  • To convert a point p into the vector from the origin to p, use p .-. origin.
  • To convert a point back into a pair of coordinates, use unp2, or coords (from Diagrams.Coordinates). It's common to use these in conjunction with the ViewPatterns extension:
foo (unp2 -> (x,y)) = ...
foo (coords -> x :& y) = ...

p2 :: (Double, Double) -> P2

Construct a 2D point from a pair of coordinates. See also ^&.

mkP2 :: Double -> Double -> P2

Curried form of p2.

unp2 :: P2 -> (Double, Double)

Convert a 2D point back into a pair of coordinates. See also coords.

type T2 = Transformation R2

Transformations in R^2.