Copyright | (c) 2013 diagrams-lib team (see LICENSE) |
---|---|
License | BSD-style (see LICENSE) |
Maintainer | diagrams-discuss@googlegroups.com |
Safe Haskell | None |
Language | Haskell2010 |
Type for representing angles.
- data Angle n
- (@@) :: b -> AReview a b -> a
- rad :: Iso' (Angle n) n
- turn :: Floating n => Iso' (Angle n) n
- deg :: Floating n => Iso' (Angle n) n
- fullTurn :: Floating v => Angle v
- halfTurn :: Floating v => Angle v
- quarterTurn :: Floating v => Angle v
- sinA :: Floating n => Angle n -> n
- cosA :: Floating n => Angle n -> n
- tanA :: Floating n => Angle n -> n
- asinA :: Floating n => n -> Angle n
- acosA :: Floating n => n -> Angle n
- atanA :: Floating n => n -> Angle n
- atan2A :: RealFloat n => n -> n -> Angle n
- atan2A' :: OrderedField n => n -> n -> Angle n
- angleBetween :: (Metric v, Floating n) => v n -> v n -> Angle n
- angleRatio :: Floating n => Angle n -> Angle n -> n
- normalizeAngle :: (Floating n, Real n) => Angle n -> Angle n
- class HasTheta t where
- class HasTheta t => HasPhi t where
Angle type
Angles can be expressed in a variety of units. Internally, they are represented in radians.
Using angles
(@@) :: b -> AReview a b -> a infixl 5 Source
30 @@ deg
is an Angle
of the given measure and units.
>>>
pi @@ rad
3.141592653589793 @@ rad
>>>
1 @@ turn
6.283185307179586 @@ rad
>>>
30 @@ deg
0.5235987755982988 @@ rad
For Iso'
s, (@@
) reverses the Iso'
on its right, and applies
the Iso'
to the value on the left. Angle
s are the motivating
example where this order improves readability.
This is the same as a flipped review
.
(@@
) :: a ->Iso'
s a -> s (@@
) :: a ->Prism'
s a -> s (@@
) :: a ->Review
s a -> s (@@
) :: a ->Equality'
s a -> s
Common angles
quarterTurn :: Floating v => Angle v Source
An angle representing a quarter turn.
Trigonometric functions
atan2A :: RealFloat n => n -> n -> Angle n Source
atan2A y x
is the angle between the positive x-axis and the vector given
by the coordinates (x, y). The Angle
returned is in the [-pi,pi] range.
atan2A' :: OrderedField n => n -> n -> Angle n Source
Angle utilities
angleBetween :: (Metric v, Floating n) => v n -> v n -> Angle n Source
Compute the positive angle between the two vectors in their common plane. Returns NaN if either of the vectors are zero.
angleRatio :: Floating n => Angle n -> Angle n -> n Source
Calculate ratio between two angles.
normalizeAngle :: (Floating n, Real n) => Angle n -> Angle n Source
Normalize an angle so that it lies in the [0,tau) range.
Classes
The class of types with at least one angle coordinate, called _theta
.
Nothing