Created
April 21, 2015 20:09
-
-
Save grisevg/b192cbf46a9c5c40773d to your computer and use it in GitHub Desktop.
Easings.hx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package; | |
class Easings | |
{ | |
//Standard easing functions | |
public static inline function easeInQuad(t:Float):Float { return t*t } | |
public static inline function easeOutQuad(t:Float):Float { return t*(2-t) } | |
public static inline function easeInOutQuad(t:Float):Float { return t<.5 ? 2*t*t : -1+(4-2*t)*t } | |
public static inline function easeInCubic(t:Float):Float { return t*t*t } | |
public static inline function easeOutCubic(t:Float):Float { return (--t)*t*t+1 } | |
public static inline function easeInOutCubic(t:Float):Float { return t<.5 ? 4*t*t*t : (t-1)*(2*t-2)*(2*t-2)+1 } | |
public static inline function easeInQuart(t:Float):Float { return t*t*t*t } | |
public static inline function easeOutQuart(t:Float):Float { return 1-(--t)*t*t*t } | |
public static inline function easeInOutQuart(t:Float):Float { return t<.5 ? 8*t*t*t*t : 1-8*(--t)*t*t*t } | |
public static inline function easeInQuint(t:Float):Float { return t*t*t*t*t } | |
public static inline function easeOutQuint(t:Float):Float { return 1+(--t)*t*t*t*t } | |
public static inline function easeInOutQuint(t:Float):Float { return t<.5 ? 16*t*t*t*t*t : 1+16*(--t)*t*t*t*t } | |
//1D bezier function. | |
public static function bezier(c1:Float, c2:Float, c3:Float, c4:Float, t:Float):Float { | |
t = 1 - t; | |
function B1(t) { return t*t*t } | |
function B2(t) { return 3*t*t*(1-t) } | |
function B3(t) { return 3*t*(1-t)*(1-t) } | |
function B4(t) { return (1-t)*(1-t)*(1-t) } | |
return c1 * B1(t) + c2 * B2(t) + c3 * B3(t) + c4 * B4(t); | |
} | |
//Makes a function described with 2D bezier curve. See CSS3 `cubic-bezier` and cubic-bezier.com for more details. | |
public static inline function makeBezierFunction(c2x, c2y, c3x, c3y):Float->Float | |
{ | |
return BezierEasing.makeBezierEasing(c2x, c2y, c3x, c3y); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment