Easing Functions
Module: terminaltexteffects.utils.easing
Functions for easing calculations.
Functions:
Name | Description |
---|---|
linear |
Linear easing function. |
in_sine |
Ease in using a sine function. |
out_sine |
Ease out using a sine function. |
in_out_sine |
Ease in/out using a sine function. |
in_quad |
Ease in using a quadratic function. |
out_quad |
Ease out using a quadratic function. |
in_out_quad |
Ease in/out using a quadratic function. |
in_cubic |
Ease in using a cubic function. |
out_cubic |
Ease out using a cubic function. |
in_out_cubic |
Ease in/out using a cubic function. |
in_quart |
Ease in using a quartic function. |
out_quart |
Ease out using a quartic function. |
in_out_quart |
Ease in/out using a quartic function. |
in_quint |
Ease in using a quintic function. |
out_quint |
Ease out using a quintic function. |
in_out_quint |
Ease in/out using a quintic function. |
in_expo |
Ease in using an exponential function. |
out_expo |
Ease out using an exponential function. |
in_out_expo |
Ease in/out using an exponential function. |
in_circ |
Ease in using a circular function. |
out_circ |
Ease out using a circular function. |
in_out_circ |
Ease in/out using a circular function. |
in_back |
Ease in using a back function. |
out_back |
Ease out using a back function. |
in_out_back |
Ease in/out using a back function. |
in_elastic |
Ease in using an elastic function. |
out_elastic |
Ease out using an elastic function. |
in_out_elastic |
Ease in/out using an elastic function. |
in_bounce |
Ease in using a bounce function. |
out_bounce |
Ease out using a bounce function. |
in_out_bounce |
Ease in/out using a bounce function. |
eased_step_function |
Create a closure that returns the eased value of each step from 0 to 1 increasing by the step_size. |
EasingFunction = typing.Callable[[float], float]
module-attribute
EasingFunctions take a float between 0 and 1 and return a float between 0 and 1.
make_easing = functools.wraps(make_easing)(functools.lru_cache(maxsize=8192)(make_easing))
module-attribute
Create a cubic Bezier easing function using the provided control points.
The easing function maps an input progress ratio (0 to 1) to an output value (0 to 1) according to a cubic Bezier curve defined by four points: - Start point: (0, 0) - First control point: (x1, y1) - Second control point: (x2, y2) - End point: (1, 1)
Parameters:
Name | Type | Description | Default |
---|---|---|---|
x1
|
float
|
Determines the horizontal position of the first control point. Smaller values make the curve start off steeper, while larger values delay the initial acceleration. |
required |
y1
|
float
|
Determines the vertical position of the first control point. Smaller values create a gentler ease-in effect; larger values increase the initial acceleration. |
required |
x2
|
float
|
Determines the horizontal position of the second control point. Larger values extend the period of change, affecting how late the acceleration or deceleration begins. |
required |
y2
|
float
|
Determines the vertical position of the second control point. Larger values can create a more abrupt ease-out effect; smaller values result in a smoother finish. |
required |
Note: Use a resource such as cubic-bezier.com to design an appropriate easing curve for your needs.
Returns:
Name | Type | Description |
---|---|---|
EasingFunction |
EasingFunction
|
A function that takes a progress_ratio (0 <= progress_ratio <= 1) and returns |
EasingFunction
|
the eased value computed from the cubic Bezier curve. |
eased_step_function(easing_func, step_size, *, clamp=False)
Create a closure that returns the eased value of each step from 0 to 1 increasing by the step_size.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
easing_func
|
EasingFunction
|
The easing function to use. |
required |
step_size
|
float
|
The step size. |
required |
clamp
|
bool
|
If True, the easing function will be limited to 0 <= n <= 1. Defaults to False. |
False
|
Returns:
Type | Description |
---|---|
Callable[[], tuple[float, float]]
|
callable[[],tuple[float,float]]: A closure that returns a tuple of the current input step and eased value of |
Callable[[], tuple[float, float]]
|
the current input step. |
Source code in terminaltexteffects/utils/easing.py
in_back(progress_ratio)
Ease in using a back function.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
progress_ratio
|
float
|
the ratio of the current step to the maximum steps |
required |
Returns:
Name | Type | Description |
---|---|---|
float |
float
|
0 <= n <= 1 eased value |
Source code in terminaltexteffects/utils/easing.py
in_bounce(progress_ratio)
Ease in using a bounce function.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
progress_ratio
|
float
|
the ratio of the current step to the maximum steps |
required |
Returns:
Name | Type | Description |
---|---|---|
float |
float
|
0 <= n <= 1 representing the percentage of the current waypoint speed to apply to the character |
Source code in terminaltexteffects/utils/easing.py
in_circ(progress_ratio)
Ease in using a circular function.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
progress_ratio
|
float
|
the ratio of the current step to the maximum steps |
required |
Returns:
Name | Type | Description |
---|---|---|
float |
float
|
0 <= n <= 1 eased value |
Source code in terminaltexteffects/utils/easing.py
in_cubic(progress_ratio)
Ease in using a cubic function.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
progress_ratio
|
float
|
the ratio of the current step to the maximum steps |
required |
Returns:
Name | Type | Description |
---|---|---|
float |
float
|
0 <= n <= 1 eased value |
Source code in terminaltexteffects/utils/easing.py
in_elastic(progress_ratio)
Ease in using an elastic function.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
progress_ratio
|
float
|
the ratio of the current step to the maximum steps |
required |
Returns:
Name | Type | Description |
---|---|---|
float |
float
|
0 <= n <= 1 eased value |
Source code in terminaltexteffects/utils/easing.py
in_expo(progress_ratio)
Ease in using an exponential function.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
progress_ratio
|
float
|
the ratio of the current step to the maximum steps |
required |
Returns:
Name | Type | Description |
---|---|---|
float |
float
|
0 <= n <= 1 eased value |
Source code in terminaltexteffects/utils/easing.py
in_out_back(progress_ratio)
Ease in/out using a back function.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
progress_ratio
|
float
|
the ratio of the current step to the maximum steps |
required |
Returns:
Name | Type | Description |
---|---|---|
float |
float
|
0 <= n <= 1 eased value |
Source code in terminaltexteffects/utils/easing.py
in_out_bounce(progress_ratio)
Ease in/out using a bounce function.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
progress_ratio
|
float
|
the ratio of the current step to the maximum steps |
required |
Returns:
Name | Type | Description |
---|---|---|
float |
float
|
0 <= n <= 1 eased value |
Source code in terminaltexteffects/utils/easing.py
in_out_circ(progress_ratio)
Ease in/out using a circular function.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
progress_ratio
|
float
|
the ratio of the current step to the maximum steps |
required |
Returns:
Name | Type | Description |
---|---|---|
float |
float
|
0 <= n <= 1 eased value |
Source code in terminaltexteffects/utils/easing.py
in_out_cubic(progress_ratio)
Ease in/out using a cubic function.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
progress_ratio
|
float
|
the ratio of the current step to the maximum steps |
required |
Returns:
Name | Type | Description |
---|---|---|
float |
float
|
0 <= n <= 1 representing the percentage of the current waypoint speed to apply to the |
float
|
character |
Source code in terminaltexteffects/utils/easing.py
in_out_elastic(progress_ratio)
Ease in/out using an elastic function.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
progress_ratio
|
float
|
the ratio of the current step to the maximum steps |
required |
Returns:
Name | Type | Description |
---|---|---|
float |
float
|
0 <= n <= 1 representing the percentage of the current waypoint speed to apply to the character |
Source code in terminaltexteffects/utils/easing.py
in_out_expo(progress_ratio)
Ease in/out using an exponential function.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
progress_ratio
|
float
|
the ratio of the current step to the maximum steps |
required |
Returns:
Name | Type | Description |
---|---|---|
float |
float
|
0 <= n <= 1 eased value |
Source code in terminaltexteffects/utils/easing.py
in_out_quad(progress_ratio)
Ease in/out using a quadratic function.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
progress_ratio
|
float
|
the ratio of the current step to the maximum steps |
required |
Returns:
Name | Type | Description |
---|---|---|
float |
float
|
0 <= n <= 1 eased value |
Source code in terminaltexteffects/utils/easing.py
in_out_quart(progress_ratio)
Ease in/out using a quartic function.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
progress_ratio
|
float
|
the ratio of the current step to the maximum steps |
required |
Returns:
Name | Type | Description |
---|---|---|
float |
float
|
0 <= n <= 1 eased value |
Source code in terminaltexteffects/utils/easing.py
in_out_quint(progress_ratio)
Ease in/out using a quintic function.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
progress_ratio
|
float
|
the ratio of the current step to the maximum steps |
required |
Returns:
Name | Type | Description |
---|---|---|
float |
float
|
0 <= n <= 1 eased value |
Source code in terminaltexteffects/utils/easing.py
in_out_sine(progress_ratio)
Ease in/out using a sine function.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
progress_ratio
|
float
|
the ratio of the current step to the maximum steps |
required |
Returns:
Name | Type | Description |
---|---|---|
float |
float
|
0 <= n <= 1 eased value |
Source code in terminaltexteffects/utils/easing.py
in_quad(progress_ratio)
Ease in using a quadratic function.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
progress_ratio
|
float
|
the ratio of the current step to the maximum steps |
required |
Returns:
Name | Type | Description |
---|---|---|
float |
float
|
0 <= n <= 1 eased value |
Source code in terminaltexteffects/utils/easing.py
in_quart(progress_ratio)
Ease in using a quartic function.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
progress_ratio
|
float
|
the ratio of the current step to the maximum steps |
required |
Returns:
Name | Type | Description |
---|---|---|
float |
float
|
0 <= n <= 1 representing the percentage |
float
|
of the current waypoint speed to apply to the character |
Source code in terminaltexteffects/utils/easing.py
in_quint(progress_ratio)
Ease in using a quintic function.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
progress_ratio
|
float
|
the ratio of the current step to the maximum steps |
required |
Returns:
Name | Type | Description |
---|---|---|
float |
float
|
0 <= n <= 1 eased value |
Source code in terminaltexteffects/utils/easing.py
in_sine(progress_ratio)
Ease in using a sine function.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
progress_ratio
|
float
|
the ratio of the current step to the maximum steps |
required |
Returns:
Name | Type | Description |
---|---|---|
float |
float
|
0 <= n <= 1 eased value |
Source code in terminaltexteffects/utils/easing.py
linear(progress_ratio)
Linear easing function.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
progress_ratio
|
float
|
the ratio of the current step to the maximum steps |
required |
Returns:
Name | Type | Description |
---|---|---|
float |
float
|
0 <= n <= 1 eased value |
Source code in terminaltexteffects/utils/easing.py
out_back(progress_ratio)
Ease out using a back function.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
progress_ratio
|
float
|
the ratio of the current step to the maximum steps |
required |
Returns:
Name | Type | Description |
---|---|---|
float |
float
|
0 <= n <= 1 eased value |
Source code in terminaltexteffects/utils/easing.py
out_bounce(progress_ratio)
Ease out using a bounce function.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
progress_ratio
|
float
|
the ratio of the current step to the maximum steps |
required |
Returns:
Name | Type | Description |
---|---|---|
float |
float
|
0 <= n <= 1 eased value |
Source code in terminaltexteffects/utils/easing.py
out_circ(progress_ratio)
Ease out using a circular function.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
progress_ratio
|
float
|
the ratio of the current step to the maximum steps |
required |
Returns:
Name | Type | Description |
---|---|---|
float |
float
|
0 <= n <= 1 eased value |
Source code in terminaltexteffects/utils/easing.py
out_cubic(progress_ratio)
Ease out using a cubic function.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
progress_ratio
|
float
|
the ratio of the current step to the maximum steps |
required |
Returns:
Name | Type | Description |
---|---|---|
float |
float
|
0 <= n <= 1 eased value |
Source code in terminaltexteffects/utils/easing.py
out_elastic(progress_ratio)
Ease out using an elastic function.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
progress_ratio
|
float
|
the ratio of the current step to the maximum steps |
required |
Returns:
Name | Type | Description |
---|---|---|
float |
float
|
0 <= n <= 1 representing the percentage of the current waypoint speed to apply to the character |
Source code in terminaltexteffects/utils/easing.py
out_expo(progress_ratio)
Ease out using an exponential function.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
progress_ratio
|
float
|
the ratio of the current step to the maximum steps |
required |
Returns:
Name | Type | Description |
---|---|---|
float |
float
|
0 <= n <= 1 eased value |
Source code in terminaltexteffects/utils/easing.py
out_quad(progress_ratio)
Ease out using a quadratic function.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
progress_ratio
|
float
|
the ratio of the current step to the maximum steps |
required |
Returns:
Name | Type | Description |
---|---|---|
float |
float
|
0 <= n <= 1 eased value |
Source code in terminaltexteffects/utils/easing.py
out_quart(progress_ratio)
Ease out using a quartic function.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
progress_ratio
|
float
|
the ratio of the current step to the maximum steps |
required |
Returns:
Name | Type | Description |
---|---|---|
float |
float
|
0 <= n <= 1 eased value |
Source code in terminaltexteffects/utils/easing.py
out_quint(progress_ratio)
Ease out using a quintic function.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
progress_ratio
|
float
|
the ratio of the current step to the maximum steps |
required |
Returns:
Name | Type | Description |
---|---|---|
float |
float
|
0 <= n <= 1 eased value |
Source code in terminaltexteffects/utils/easing.py
out_sine(progress_ratio)
Ease out using a sine function.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
progress_ratio
|
float
|
the ratio of the current step to the maximum steps |
required |
Returns:
Name | Type | Description |
---|---|---|
float |
float
|
0 <= n <= 1 eased value |