6 releases (breaking)
0.6.0 | Feb 25, 2022 |
---|---|
0.5.0 | Jul 14, 2021 |
0.4.0 | Nov 13, 2020 |
0.3.0 | Feb 7, 2019 |
0.1.0 | Mar 17, 2017 |
#887 in Algorithms
566 downloads per month
Used in 10 crates
(5 directly)
24KB
548 lines
Ang
Ang is a fork of the Angular crate to add various improvements.
Angular types and common helper methods to work with them while using the Rust type system in our favor.
Features
- Tested and documented,
- Safety without sacrificing performance and conversion related errors,
Usage
Everything evolves around the Angle<T>
type and its two variants
Degrees(v)
and Radians(v)
. This ensures proper typing and allows for safe
helper methods evolving around it.
extern crate ang;
use angular::*;
use std::f64::consts::{SQRT_2, FRAC_PI_4};
fn calc_hypotenuse(opposite: f64, alpha: Angle) -> f64 {
opposite / alpha.sin()
}
let a = calc_hypotenuse(SQRT_2, Radians(FRAC_PI_4));
let b = calc_hypotenuse(SQRT_2, Degrees(45.0));
let c = calc_hypotenuse(SQRT_2, Angle::eighth());
assert!((a - 2.0).abs() < 1.0e10);
assert!((a - b).abs() < 1.0e10);
Features
std
Enabling the std
feature will link this crate to std
. If this feature is disabled, then
this crate will be built with #![no_std]
enabled.
This feature is enabled by default.
Documentation
For an exhaustive documentation head over to the API docs.
License
This software is licensed under the terms of the MIT license. Please see the LICENSE for full details.
Dependencies
~130–360KB