Cubic Bezier v0.1.0 CubicBezier
Elixir port of the the JavaScript port of Webkit implementation of
CSS cubic-bezier(p1x, p1y, p2x, p2y) by http://mck.me
http://svn.webkit.org/repository/webkit/trunk/Source/WebCore/platform/graphics/UnitBezier.h https://gist.github.com/mckamey/3783009
Link to this section Summary
Functions
Given x (a float between 0.0 and 1.0), compute the y.
Link to this section Functions
Link to this function
solve(x, easing_or_control_points, opts \\ [])
Given x (a float between 0.0 and 1.0), compute the y.
Either an easing atom or control points tuple can be provided.
Most common easing equations are support, but if an unsupported atom
is given, the control points for :linear are returned.
See: https://gist.github.com/terkel/4377409
Options
duration(integer) - can provide greater accuracy.
The default duration is 400 (ms), which is a common animation / transition duration.
Examples
iex> CubicBezier.solve(0.50, :ease_out_quad)
0.7713235628639843
iex> CubicBezier.solve(0.5, {0.250, 0.460, 0.450, 0.940})
0.7713235628639843
iex(1)> Enum.map([0.0, 0.25, 0.5, 0.75, 1.0], fn x ->
...(1)> {x, Float.round(CubicBezier.solve(x, :ease_out_quad), 3)}
...(1)> end)
[{0.0, 0.0}, {0.25, 0.453}, {0.5, 0.771}, {0.75, 0.936}, {1.0, 1.0}]