1 stable release
1.0.2 | Nov 29, 2023 |
---|
#27 in #easing
10KB
282 lines
simple-easing2
This package contains a set of simple easing functions.
Note: this is a fork of https://gitlab.com/chpio/simple-easing. Makes all functions inlined, adds a #[must_use]
attr, applies rustfmt and clippy fixes.
lib.rs
:
This package contains a set of simple easing functions. That consume a standardised time
attribute in the range between 0.0
and 1.0
, that represent the progress of a transition.
0.0
being the beginning, 1.0
the end.
They return a value between 0.0
and 1.0
(it might exceed the 0..=1
range temporarily
for a bounce effect). The returned value can be used to interpolate between the initial
(0.0
) and the final (1.0
) transition state, allowing for a "more natural" feel of
a transition by accelerating and decelerating at certain points, depending on the easing
function used.
Visit easings.net to see visualisations of the different easing functions.
All easing functions have the same signature ((f32) -> f32
) and can be easily stored as
fn pointers.
use simple_easing::linear;
let easing: fn(f32) -> f32 = linear;
assert_eq!(easing(1.0), 1.0);