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.Vector

Contents

Description

Two-dimensional vectors.

Synopsis

Special 2D vectors

unitX :: R2

The unit vector in the positive X direction.

unitY :: R2

The unit vector in the positive Y direction.

unit_X :: R2

The unit vector in the negative X direction.

unit_Y :: R2

The unit vector in the negative Y direction.

Converting between vectors and angles

direction :: R2 -> Angle

Compute the direction of a vector, measured counterclockwise from the positive x-axis as a fraction of a full turn. The zero vector is arbitrarily assigned the direction 0.

angleBetween :: (InnerSpace v, Scalar v ~ Double) => v -> v -> Angle

compute the positive angle between the two vectors in their common plane

fromDirection :: Angle -> R2

Convert an angle into a unit vector pointing in that direction.

e :: Angle -> R2

A convenient synonym for fromDirection.

2D vector utilities

perp :: R2 -> R2

perp v is perpendicular to and has the same magnitude as v. In particular perp v == rotateBy (1/4) v.

leftTurn :: R2 -> R2 -> Bool

leftTurn v1 v2 tests whether the direction of v2 is a left turn from v1 (that is, if the direction of v2 can be obtained from that of v1 by adding an angle 0 <= theta <= tau/2).