Expand description
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);
Functions§
- back_in
- https://easings.net/#easeInBack
- back_
in_ out - https://easings.net/#easeInOutBack
- back_
out - https://easings.net/#easeOutBack
- bounce_
in - https://easings.net/#easeInBounce
- bounce_
in_ out - https://easings.net/#easeInOutBounce
- bounce_
out - https://easings.net/#easeOutBounce
- circ_in
- https://easings.net/#easeInCirc
- circ_
in_ out - https://easings.net/#easeInOutCirc
- circ_
out - https://easings.net/#easeOutCirc
- cubic_
in - https://easings.net/#easeInCubic
- cubic_
in_ out - https://easings.net/#easeInOutCubic
- cubic_
out - https://easings.net/#easeOutCubic
- elastic_
in - https://easings.net/#easeInElastic
- elastic_
in_ out - https://easings.net/#easeInOutElastic
- elastic_
out - https://easings.net/#easeOutElastic
- expo_in
- https://easings.net/#easeInExpo
- expo_
in_ out - https://easings.net/#easeInOutExpo
- expo_
out - https://easings.net/#easeOutExpo
- linear
- quad_in
- https://easings.net/#easeInQuad
- quad_
in_ out - https://easings.net/#easeInOutQuad
- quad_
out - https://easings.net/#easeOutQuad
- quart_
in - https://easings.net/#easeInQuart
- quart_
in_ out - https://easings.net/#easeInOutQuart
- quart_
out - https://easings.net/#easeOutQuart
- quint_
in - https://easings.net/#easeInQuint
- quint_
in_ out - https://easings.net/#easeInOutQuint
- quint_
out - https://easings.net/#easeOutQuint
- reverse
- A linear easing that goes from
1.0
to0.0
. - roundtrip
- A linear easing that goes from
0.0
to1.0
and back to0.0
. That might be used in combination with other easing functions. - sine_in
- https://easings.net/#easeInSine
- sine_
in_ out - https://easings.net/#easeInOutSine
- sine_
out - https://easings.net/#easeOutSine