| Copyright | (c) 2013 diagrams-lib team (see LICENSE) |
|---|---|
| License | BSD-style (see LICENSE) |
| Maintainer | diagrams-discuss@googlegroups.com |
| Safe Haskell | None |
| Language | Haskell2010 |
Diagrams.Angle
Description
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.
Instances
| Functor Angle Source # | |
| Applicative Angle Source # | |
| Additive Angle Source # | |
| Enum n => Enum (Angle n) Source # | |
| Eq n => Eq (Angle n) Source # | |
| Ord n => Ord (Angle n) Source # | |
| Read n => Read (Angle n) Source # | |
| Show n => Show (Angle n) Source # | |
| Num n => Semigroup (Angle n) Source # | |
| Num n => Monoid (Angle n) Source # | |
| type N (Angle n) Source # | |
Using angles
(@@) :: b -> AReview a b -> a infixl 5 Source #
30 @@ deg is an Angle of the given measure and units.
>>>pi @@ rad3.141592653589793 @@ rad
>>>1 @@ turn6.283185307179586 @@ rad
>>>30 @@ deg0.5235987755982988 @@ rad
For Iso's, (@@) reverses the Iso' on its right, and applies
the Iso' to the value on the left. Angles 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 ->Reviews 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.
normalizeAngle :: (Floating n, Real n) => Angle n -> Angle n Source #
Normalize an angle so that it lies in the [0,tau) range.
Classes
class HasTheta t where Source #
The class of types with at least one angle coordinate, called _theta.