Ease

pipeline statusHex.pmHippocratic License HL3-FULL

A generic implementation of standard easing functions for use in animation or robotics.

For examples of "standard" easing algorithms (in this case used in CSS animations) take a look at easings.net

Installation

Available in Hex, the package can be installed by adding ease to your list of dependencies in mix.exs:

def deps do
[{:ease, "~> 1.0.0"}]
end

Documentation can be found at https://hexdocs.pm/ease.

Usage

You can use an easing function directly from within your own loop, provided that you can supply the four arguments needed;

Given a quadratic ease-in of 1..10, over 1 unit of time, where would we be when half-way through:

iex> Ease.ease_in_quad(0.5, 1, 10, 1)
3.25

Plot the {x, y} positions for a circular ease-in:

iex> ys = 1..10
...> xs = Ease.map(ys, :ease_in_circular)
...> Enum.zip(xs, ys)
[{1.0, 1}, {1.0557280900008417, 2}, {1.2250356126078779, 3},
{1.5147186257614298, 4}, {1.9377422517014504, 5}, {2.5166852264521173, 6},
{3.291796067500631, 7}, {4.34314575050762, 8}, {5.876894374382339, 9},
{10.0, 10}]

License

This software is licensed under the terms of the HL3-FULL, see the LICENSE.md file included with this package for the terms.

This license actively proscribes this software being used by and for some industries, countries and activities. If your usage of this software doesn't comply with the terms of this license, then contact me with the details of your use-case to organise the purchase of a license - the cost of which may include a donation to a suitable charity or NGO.