#angular #units #angle #geometry #unit

angular-units

A library for representing, manipulating and converting between angular quantities in various units through a type-safe interace

9 releases

Uses old Rust 2015

0.2.4 Nov 21, 2018
0.2.3 Nov 21, 2018
0.2.2 May 28, 2017
0.2.1 Jan 5, 2017
0.1.3 Dec 30, 2016

#673 in Math

Download history 88/week @ 2024-03-11 83/week @ 2024-03-18 99/week @ 2024-03-25 127/week @ 2024-04-01 79/week @ 2024-04-08 104/week @ 2024-04-15 103/week @ 2024-04-22 76/week @ 2024-04-29 71/week @ 2024-05-06 74/week @ 2024-05-13 55/week @ 2024-05-20 58/week @ 2024-05-27 68/week @ 2024-06-03 173/week @ 2024-06-10 159/week @ 2024-06-17 142/week @ 2024-06-24

547 downloads per month
Used in 5 crates (3 directly)

MIT license

35KB
634 lines

angular-units 0.2.4

Build Status angular-units on docs.rs angular-units on crates.io

Feature-rich library for representing and manipulating angular quantities. Provides strongly-typed structs for six units as well as helper traits for abstracting over the concrete types and doing common operations.

Provided Units:

  • Degrees - Deg<T>
  • Radians - Rad<T>
  • Gradians - Gon<T>
  • Turns - Turns<T> (1 turn is a full rotation)
  • Arc minutes - ArcMinutes<T>
  • Arc seconds - ArcSeconds<T>

Usage:

[dependencies]
angular-units = "0.2.4"

Examples:

  • Converting from Degrees to Radians:
  let angle = Deg(45.0);
  let radians: Rad<_> = angle.into_angle();
  • Composing angles from multiple units:
  let degrees: Deg<f32> = Deg(50.0_f32) + ArcMinutes(25.0_f32) + Rad(std::f32::consts::PI / 6.0_f32);
  • Interpolating between two angles:
 assert_eq!(Deg(240.0).interpolate(&Deg(180.0), 0.5), Deg(210.0))

Optional Features:

Angular-units provides optional serde and approx support for all types by enabling their respective features.

Dependencies

~130–370KB