Maintainer | diagrams-discuss@googlegroups.com |
---|---|

Safe Haskell | None |

Basic types for two-dimensional Euclidean space.

- data R2
- r2 :: (Double, Double) -> R2
- unr2 :: R2 -> (Double, Double)
- type P2 = Point R2
- p2 :: (Double, Double) -> P2
- unp2 :: P2 -> (Double, Double)
- type T2 = Transformation R2
- class Num a => Angle a where
- toCircleFrac :: a -> CircleFrac
- fromCircleFrac :: CircleFrac -> a

- newtype CircleFrac = CircleFrac {}
- newtype Rad = Rad {}
- newtype Deg = Deg {}
- fullCircle :: Angle a => a
- convertAngle :: (Angle a, Angle b) => a -> b

# 2D Euclidean space

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

- To construct a vector, use
`r2`

, or`&`

(from Diagrams.Coordinates):

r2 (3,4) :: R2 3 & 4 :: 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`

or`coords`

(from Diagrams.Coordinates). These are typically used in conjunction with the`ViewPatterns`

extension:

foo (unr2 -> (x,y)) = ... foo (coords -> x :& y) = ...

Eq R2 | |

Fractional R2 | |

Num R2 | |

Ord R2 | |

Read R2 | |

Show R2 | |

Typeable R2 | |

Transformable R2 | |

HasBasis R2 | |

VectorSpace R2 | |

InnerSpace R2 | |

AdditiveGroup R2 | |

Coordinates R2 | |

Newtype R2 (Double, Double) | |

Traced (FixedSegment R2) | |

Traced (Segment R2) | |

Traced (Path R2) | |

Traced (Trail R2) | |

(Monoid' (QDiagram b R2 Any), VectorSpace (V (QDiagram b R2 Any)), Renderable (Path R2) b) => PathLike (QDiagram b R2 Any) |

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

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

.

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

- To construct a point, use
`p2`

, or`&`

(see Diagrams.Coordinates):

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) = ...

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

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

.

type T2 = Transformation R2Source

Transformations in R^2.

# Angles

class Num a => Angle a whereSource

Type class for types that measure angles.

toCircleFrac :: a -> CircleFracSource

Convert to a fraction of a circle.

fromCircleFrac :: CircleFrac -> aSource

Convert from a fraction of a circle.

newtype CircleFrac Source

Newtype wrapper used to represent angles as fractions of a circle. For example, 1/3 = tau/3 radians = 120 degrees.

Newtype wrapper for representing angles in radians.

Newtype wrapper for representing angles in degrees.

fullCircle :: Angle a => aSource

An angle representing a full circle.

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

Convert between two angle representations.