Incular logoIncular
API ReferencePainting & Animation

Curves

Every easing curve with application and chaining rules.

Normalized, clamping input and output to 0..1. Linear (default), Ease, EaseIn, EaseOut, EaseInOut, EaseInSine, EaseOutSine, EaseInOutSine, EaseInQuad, EaseOutQuad, EaseInOutQuad, EaseInCubic, EaseOutCubic, EaseInOutCubic, EaseInQuart, EaseOutQuart, EaseInOutQuart, EaseInQuint, EaseOutQuint, EaseInOutQuint, EaseInExpo, EaseOutExpo, EaseInOutExpo, EaseInCirc, EaseOutCirc, EaseInOutCirc, EaseInBack, EaseOutBack, EaseInOutBack, EaseInElastic, EaseOutElastic, EaseInOutElastic, EaseInBounce, EaseOutBounce, EaseInOutBounce, FastOutSlowIn, CubicBezier { x1, y1, x2, y2 }, StepStart, StepEnd.

FamilyVariants
BasicLinear (default), Ease, EaseIn, EaseOut, EaseInOut, FastOutSlowIn
SineEaseInSine, EaseOutSine, EaseInOutSine
Quad/Cubic/Quart/QuintEaseIn/Out/InOut × each power
Expo/CircEaseIn/Out/InOutExpo, EaseIn/Out/InOutCirc
BackEaseInBack, EaseOutBack, EaseInOutBack (overshoot)
ElasticEaseInElastic, EaseOutElastic, EaseInOutElastic
BounceEaseInBounce, EaseOutBounce, EaseInOutBounce
CustomCubicBezier, StepStart, StepEnd
use incular::prelude::*;

fn main() {
    println!("ease: {}", Curve::EaseOut.apply(0.5));
    println!("bezier: {:?}", Curve::cubic_bezier(0.4, 0.0, 0.2, 1.0));
    println!("reversed: {:?}", Curve::EaseIn.reverse());
    println!("linear: {:?}", Curves::LINEAR);
}

Related: Tweens, AnimationController.