| 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) = 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.
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.
Minimal complete definition
Nothing