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

Maintainerdiagrams-discuss@googlegroups.com
Safe HaskellNone

Diagrams.TwoD.Types

Contents

Description

Basic types for two-dimensional Euclidean space.

Synopsis

2D Euclidean space

data R2 Source

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

  • To construct a vector, use r2.
  • 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.

r2 :: (Double, Double) -> R2Source

Construct a 2D vector from a pair of components.

unr2 :: R2 -> (Double, Double)Source

Convert a 2D vector back into a pair of components.

type P2 = Point R2Source

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

  • To construct a point, use 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.

p2 :: (Double, Double) -> P2Source

Construct a 2D point from a pair of coordinates.

unp2 :: P2 -> (Double, Double)Source

Convert a 2D point back into a pair of coordinates.

type T2 = Transformation R2Source

Transformations in R^2.

Angles

class Num a => Angle a whereSource

Type class for types that measure angles.

Methods

toCircleFrac :: a -> CircleFracSource

Convert to a fraction of a circle.

fromCircleFrac :: CircleFrac -> aSource

Convert from a fraction of a circle.

Instances

Angle Deg

360 degrees = 1 full circle.

Angle Rad

tau radians = 1 full circle.

Angle CircleFrac 

newtype CircleFrac Source

Newtype wrapper used to represent angles as fractions of a circle. For example, 13 = tau3 radians = 120 degrees.

Constructors

CircleFrac 

newtype Rad Source

Newtype wrapper for representing angles in radians.

Constructors

Rad 

Fields

getRad :: Double
 

Instances

newtype Deg Source

Newtype wrapper for representing angles in degrees.

Constructors

Deg 

Fields

getDeg :: Double
 

Instances

fullCircle :: Angle a => aSource

An angle representing a full circle.

convertAngle :: (Angle a, Angle b) => a -> bSource

Convert between two angle representations.