Easing¶
This module contains various easing functions that can be used for animations and transitions. Each function takes a normalized time parameter p (ranging from 0 to 1) and returns a value representing the eased progress of an animation, allowing for different acceleration and deceleration effects during the animation process. These functions can be used in conjunction with the tween module for smooth animations.
To use this component, add the following line to your project file:
require engine.tweener.easing // or require engine.core
Functions¶
- cosineFull(p: float): float¶
Full-period cosine-based easing function. Note that it ends at 0., not 1.
- Arguments:
p : float - Normalized time (0..1).
- inBack(p: float): float¶
Back easing-in function (overshooting cubic, accelerating from negative velocity). 10% overshoot.
- Arguments:
p : float - Normalized time (0..1).
- inBounce(p: float): float¶
Bounce easing-in function (exponentially increasing bounce from 0)
- Arguments:
p : float - Normalized time (0..1).
- inCirc(p: float): float¶
Circular easing-in function (accelerating from zero velocity). Modeled after quadrant of unit circle.
- Arguments:
p : float - Normalized time (0..1).
- inCubic(p: float): float¶
Cubic easing-in function (accelerating from zero velocity).
- Arguments:
p : float - Normalized time (0..1).
- inElastic(p: float): float¶
Elastic easing-in function (exponentially-damped sine wave, accelerating from zero velocity).
- Arguments:
p : float - Normalized time (0..1).
- inExp(p: float): float¶
Exponential easing-in function (accelerating from zero velocity), base 2.
- Arguments:
p : float - Normalized time (0..1).
- inOutBack(p: float): float¶
Back easing-in/out function (overshooting cubic, acceleration until halfway, then deceleration). 10% overshoot.
- Arguments:
p : float - Normalized time (0..1).
- inOutBezier(p: float): float¶
Smooth cubic Bezier-like easing-in/out function.
- Arguments:
p : float - Normalized time (0..1).
- inOutBounce(p: float): float¶
Bounce easing-in/out function (exponentially increasing bounce from 0 until halfway, then exponentially decaying bounce to 1). Modeled after piecewise in and out bounce connected at 0.5.
- Arguments:
p : float - Normalized time (0..1).
- inOutCirc(p: float): float¶
Circular easing-in/out function (acceleration until halfway, then deceleration). Modeled after piecewise circular function with two quadrants of unit circle, connected at 0.5.
- Arguments:
p : float - Normalized time (0..1).
- inOutCubic(p: float): float¶
Cubic easing-in/out function (acceleration until halfway, then deceleration).
- Arguments:
p : float - Normalized time (0..1).
- inOutElastic(p: float): float¶
Elastic easing-in/out function (exponentially-damped sine wave, acceleration until halfway, then deceleration). Modeled after piecewise exponentially-damped in and out sine waves, connected at 0.5.
- Arguments:
p : float - Normalized time (0..1).
- inOutExp(p: float): float¶
Exponential easing-in/out function (acceleration until halfway, then deceleration), base 2. Modeled after piecewise exponential function with two halves, connected at 0.5.
- Arguments:
p : float - Normalized time (0..1).
- inOutQuad(p: float): float¶
Quadratic easing-in/out function (acceleration until halfway, then deceleration).
- Arguments:
p : float - Normalized time (0..1).
- inOutQuart(p: float): float¶
Quartic easing-in/out function (acceleration until halfway, then deceleration).
- Arguments:
p : float - Normalized time (0..1).
- inOutQuintic(p: float): float¶
Quintic easing-in/out function (acceleration until halfway, then deceleration).
- Arguments:
p : float - Normalized time (0..1).
- inOutSine(p: float): float¶
Sine easing-in/out function (acceleration until halfway, then deceleration). Modeled after half sine wave.
- Arguments:
p : float - Normalized time (0..1).
- inQuad(p: float): float¶
Quadratic easing-in function (accelerating from zero velocity).
- Arguments:
p : float - Normalized time (0..1).
- inQuart(p: float): float¶
Quartic easing-in function (accelerating from zero velocity).
- Arguments:
p : float - Normalized time (0..1).
- inQuintic(p: float): float¶
Quintic easing-in function (accelerating from zero velocity).
- Arguments:
p : float - Normalized time (0..1).
- inSine(p: float): float¶
Sine easing-in function (accelerating from zero velocity). Modeled after quarter-cycle of sine wave.
- Arguments:
p : float - Normalized time (0..1).
- inStep(p: float): float¶
Step function that jumps from 0 to 1 at p = 0.5.
- Arguments:
p : float - Normalized time (0..1).
- linear(p: float): float¶
Linear easing function.
- Arguments:
p : float - Normalized time (0..1).
- outBack(p: float): float¶
Back easing-out function (overshooting cubic, decelerating to negative velocity). 10% overshoot.
- Arguments:
p : float - Normalized time (0..1).
- outBounce(p: float): float¶
Bounce easing-out function (exponentially decaying bounce to 1)
- Arguments:
p : float - Normalized time (0..1).
- outCirc(p: float): float¶
Circular easing-out function (decelerating to zero velocity). Modeled after quadrant of unit circle.
- Arguments:
p : float - Normalized time (0..1).
- outCubic(p: float): float¶
Cubic easing-out function (decelerating to zero velocity).
- Arguments:
p : float - Normalized time (0..1).
- outElastic(p: float): float¶
Elastic easing-out function (exponentially-damped sine wave, decelerating to zero velocity).
- Arguments:
p : float - Normalized time (0..1).
- outExp(p: float): float¶
Exponential easing-out function (decelerating to zero velocity), base 2.
- Arguments:
p : float - Normalized time (0..1).
- outQuad(p: float): float¶
Quadratic easing-out function (decelerating to zero velocity).
- Arguments:
p : float - Normalized time (0..1).
- outQuart(p: float): float¶
Quartic easing-out function (decelerating to zero velocity).
- Arguments:
p : float - Normalized time (0..1).
- outQuintic(p: float): float¶
Quintic easing-out function (decelerating to zero velocity).
- Arguments:
p : float - Normalized time (0..1).
- outSine(p: float): float¶
Sine easing-out function (decelerating to zero velocity). Modeled after quarter-cycle of sine wave.
- Arguments:
p : float - Normalized time (0..1).
- outStep(p: float): float¶
Step function that jumps from 1 to 0 at p = 0.5.
- Arguments:
p : float - Normalized time (0..1).
- smoothStartArch3(p: float): float¶
Smooth start arch function (cubic arch, slow increase to 1 and then fast decrease to 0). Note that it ends at 0., not 1.
- Arguments:
p : float - Normalized time (0..1).
- smoothStopArch3(p: float): float¶
Smooth stop arch function (cubic arch, fast increase to 1 and then slow decrease to 0). Note that it ends at 0., not 1.
- Arguments:
p : float - Normalized time (0..1).