# [−][src]Crate angular_units

Library for representing and manipulating angular quantities. Provides type-safe wrapper types for each unit as well as helper traits for abstracting over the concrete types. Conversions between types is easy and safe, allowing highly flexible manipulation.

## Details

### Arithmetic

Each angle type defines basic arithmetic operators. Multiplication and division are between an angle and a scalar. Addition and subtraction are between two angles and the two angles do not have to be represented using the same units for example, the following is valid:

let angle = Turns(0.25) + Deg(30.0) - ArcMinutes(15.0);

When combining units like this, the left-hand side type will be the result.

### Normalization

For performance, most operations do not normalize the results or inputs automatically.
This is mathematically sound, but it is often more convenient to have a single
value to represent each angle. Thus, for methods that expect an angle within
the standard domain, `normalize()`

should be used to create an equivalent
angle that is less than one period.

## Structs

ArcMinutes | An angular quantity measured in arc minutes, which are 1/60th of a degree. |

ArcSeconds | An angular quantity measured in arc seconds, which are 1/60th of an arc minute. |

Deg | An angular quantity measured in degrees. |

Gon | An angular quantity measured in gons. |

Rad | An angular quantity measured in degrees. |

Turns | An angular quantity measured in "turns", or full rotations. |

## Traits

Angle | Base functionality for all angle types. |

FromAngle | Construct |

Interpolate | A trait for linear interpolation between angles. |

IntoAngle | Construct an angle by converting from another type. |

## Functions

mean | Compute the mean of a collection of angles. |