Last active
May 10, 2024 00:03
-
-
Save cocopon/1ec025bcffb3fd7995db to your computer and use it in GitHub Desktop.
Revisions
-
cocopon revised this gist
May 1, 2015 . 1 changed file with 68 additions and 68 deletions.There are no files selected for viewing
This file contains hidden or 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 charactersOriginal file line number Diff line number Diff line change @@ -411,179 +411,179 @@ public class EasingInOutSine implements Easing { } } Easing easeInBack__ = new EasingInBack(); Easing easeInBounce__ = new EasingInBounce(); Easing easeInCirc__ = new EasingInCirc(); Easing easeInCubic__ = new EasingInCubic(); Easing easeInElastic__ = new EasingInElastic(); Easing easeInExpo__ = new EasingInExpo(); Easing easeInQuad__ = new EasingInQuad(); Easing easeInQuart__ = new EasingInQuart(); Easing easeInQuint__ = new EasingInQuint(); Easing easeInSine__ = new EasingInSine(); Easing easeOutBack__ = new EasingOutBack(); Easing easeOutBounce__ = new EasingOutBounce(); Easing easeOutCirc__ = new EasingOutCirc(); Easing easeOutCubic__ = new EasingOutCubic(); Easing easeOutElastic__ = new EasingOutElastic(); Easing easeOutExpo__ = new EasingOutExpo(); Easing easeOutQuad__ = new EasingOutQuad(); Easing easeOutQuart__ = new EasingOutQuart(); Easing easeOutQuint__ = new EasingOutQuint(); Easing easeOutSine__ = new EasingOutSine(); Easing easeInOutBack__ = new EasingInOutBack(); Easing easeInOutBounce__ = new EasingInOutBounce(); Easing easeInOutCirc__ = new EasingInOutCirc(); Easing easeInOutCubic__ = new EasingInOutCubic(); Easing easeInOutElastic__ = new EasingInOutElastic(); Easing easeInOutExpo__ = new EasingInOutExpo(); Easing easeInOutQuad__ = new EasingInOutQuad(); Easing easeInOutQuart__ = new EasingInOutQuart(); Easing easeInOutQuint__ = new EasingInOutQuint(); Easing easeInOutSine__ = new EasingInOutSine(); float easeInBack(float t, float s) { return ((EasingInBack)easeInBack__).get(t, s); } float easeInBack(float t) { return easeInBack__.get(t); } float easeInBounce(float t) { return easeInBounce__.get(t); } float easeInCirc(float t) { return easeInCirc__.get(t); } float easeInCubic(float t) { return easeInCubic__.get(t); } float easeInElastic(float t, float s) { return ((EasingInElastic)easeInElastic__).get(t, s); } float easeInElastic(float t) { return easeInElastic__.get(t); } float easeInExpo(float t) { return easeInExpo__.get(t); } float easeInQuad(float t) { return easeInQuad__.get(t); } float easeInQuart(float t) { return easeInQuart__.get(t); } float easeInQuint(float t) { return easeInQuint__.get(t); } float easeInSine(float t) { return easeInSine__.get(t); } float easeOutBack(float t, float s) { return ((EasingOutBack)easeOutBack__).get(t, s); } float easeOutBack(float t) { return easeOutBack__.get(t); } float easeOutBounce(float t) { return easeOutBounce__.get(t); } float easeOutCirc(float t) { return easeOutCirc__.get(t); } float easeOutCubic(float t) { return easeOutCubic__.get(t); } float easeOutElastic(float t, float s) { return ((EasingOutElastic)easeOutElastic__).get(t, s); } float easeOutElastic(float t) { return easeOutElastic__.get(t); } float easeOutExpo(float t) { return easeOutExpo__.get(t); } float easeOutQuad(float t) { return easeOutQuad__.get(t); } float easeOutQuart(float t) { return easeOutQuart__.get(t); } float easeOutQuint(float t) { return easeOutQuint__.get(t); } float easeOutSine(float t) { return easeOutSine__.get(t); } float easeInOutBack(float t, float s) { return ((EasingInOutBack)easeInOutBack__).get(t, s); } float easeInOutBack(float t) { return easeInOutBack__.get(t); } float easeInOutBounce(float t) { return easeInOutBounce__.get(t); } float easeInOutCirc(float t) { return easeInOutCirc__.get(t); } float easeInOutCubic(float t) { return easeInOutCubic__.get(t); } float easeInOutElastic(float t, float s) { return ((EasingInOutElastic)easeInOutElastic__).get(t, s); } float easeInOutElastic(float t) { return easeInOutElastic__.get(t); } float easeInOutExpo(float t) { return easeInOutExpo__.get(t); } float easeInOutQuad(float t) { return easeInOutQuad__.get(t); } float easeInOutQuart(float t) { return easeInOutQuart__.get(t); } float easeInOutQuint(float t) { return easeInOutQuint__.get(t); } float easeInOutSine(float t) { return easeInOutSine__.get(t); } -
cocopon revised this gist
May 1, 2015 . 1 changed file with 82 additions and 69 deletions.There are no files selected for viewing
This file contains hidden or 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 charactersOriginal file line number Diff line number Diff line change @@ -1,6 +1,6 @@ /* * Easing.pde - brings Robert Penner's easing functions into Processing * (c) 2015 cocopon. * * See the following to learn more about these famous functions: * http://www.robertpenner.com/easing/ @@ -28,26 +28,39 @@ * Easing easing = new EasingOutBack(); * float value = easing.get(t); * ... * * // Or using an anonymous class to instanciate a custom easing function * Easing easing = new Easing() { * public float get(float t) { * return sqrt(t); * } * }; * float value = easing.get(t); * ... */ public interface Easing { public float get(float t); } public class EasingLinear implements Easing { public float get(float t) { return t; } } public class EasingInBack implements Easing { public float get(float t, float s) { return t * t * ((s + 1) * t - s); } public float get(float t) { return get(t, 1.70158); } } public class EasingInBounce implements Easing { public float get(float t) { t = 1.0 - t; if (t < 1 / 2.75) { @@ -67,20 +80,20 @@ class EasingInBounce extends Easing { } } public class EasingInCirc implements Easing { public float get(float t) { return -(sqrt(1 - t * t) - 1); } } public class EasingInCubic implements Easing { public float get(float t) { return t * t * t; } } public class EasingInElastic implements Easing { public float get(float t, float s) { float p = 0.3; float a = 1.0; @@ -103,56 +116,56 @@ class EasingInElastic extends Easing { return -(a * pow(2, 10 * t) * sin((t - s) * (2 * 3.1419) / p)); } public float get(float t) { return get(t, 1.70158); } } public class EasingInExpo implements Easing { public float get(float t) { return (t == 0) ? 0 : pow(2, 10 * (t - 1)); } } public class EasingInQuad implements Easing { public float get(float t) { return t * t; } } public class EasingInQuart implements Easing { public float get(float t) { return t * t * t * t; } } public class EasingInQuint implements Easing { public float get(float t) { return t * t * t * t * t; } } public class EasingInSine implements Easing { public float get(float t) { return -cos(t * (PI / 2)) + 1.0; } } public class EasingOutBack implements Easing { public float get(float t, float s) { --t; return t * t * ((s + 1.0) * t + s) + 1.0; } public float get(float t) { return get(t, 1.70158); } } public class EasingOutBounce implements Easing { public float get(float t) { if (t < 1 / 2.75) { return 7.5625 * t * t; } @@ -170,22 +183,22 @@ class EasingOutBounce extends Easing { } } public class EasingOutCirc implements Easing { public float get(float t) { --t; return sqrt(1 - t * t); } } public class EasingOutCubic implements Easing { public float get(float t) { --t; return t * t * t + 1; } } public class EasingOutElastic implements Easing { public float get(float t, float s) { float p = 0.3; float a = 1.0; @@ -206,47 +219,47 @@ class EasingOutElastic extends Easing { return a * pow(2, -10 * t) * sin((t - s) * (2 * 3.1419) / p) + 1.0; } public float get(float t) { return get(t, 1.70158); } } public class EasingOutExpo implements Easing { public float get(float t) { return (t == 1.0) ? 1.0 : (-pow(2, -10 * t) + 1); } } public class EasingOutQuad implements Easing { public float get(float t) { return -t * (t - 2); } } public class EasingOutQuart implements Easing { public float get(float t) { --t; return 1.0 - t * t * t * t; } } public class EasingOutQuint implements Easing { public float get(float t) { --t; return t * t * t * t * t + 1; } } public class EasingOutSine implements Easing { public float get(float t) { return sin(t * (PI / 2)); } } public class EasingInOutBack implements Easing { public float get(float t, float s) { float k = 1.525; t *= 2; @@ -259,24 +272,24 @@ class EasingInOutBack extends Easing { return 0.5 * (t * t * ((s + 1) * t + s) + 2); } public float get(float t) { return get(t, 1.70158); } } public class EasingInOutBounce implements Easing { Easing inBounce_ = new EasingInBounce(); Easing outBounce_ = new EasingOutBounce(); public float get(float t) { return (t < 0.5) ? (inBounce_.get(t * 2) * 0.5) : (outBounce_.get(t * 2 - 1.0) * 0.5 + 0.5); } } public class EasingInOutCirc implements Easing { public float get(float t) { t *= 2; if (t < 1) { @@ -288,8 +301,8 @@ class EasingInOutCirc extends Easing { } } public class EasingInOutCubic implements Easing { public float get(float t) { t *= 2; if (t < 1) { @@ -301,8 +314,8 @@ class EasingInOutCubic extends Easing { } } public class EasingInOutElastic implements Easing { public float get(float t, float s) { float p = 0.3 * 1.5; float a = 1.0; @@ -329,13 +342,13 @@ class EasingInOutElastic extends Easing { return a * pow(2, -10 * t) * sin((t - s) * (2 * 3.1419) / p) * 0.5 + 1.0; } public float get(float t) { return get(t, 1.70158); } } public class EasingInOutExpo implements Easing { public float get(float t) { if (t == 0) { return 0; } @@ -353,8 +366,8 @@ class EasingInOutExpo extends Easing { } } public class EasingInOutQuad implements Easing { public float get(float t) { t *= 2; if (t < 1) { @@ -366,8 +379,8 @@ class EasingInOutQuad extends Easing { } } public class EasingInOutQuart implements Easing { public float get(float t) { t *= 2; if (t < 1) { @@ -379,8 +392,8 @@ class EasingInOutQuart extends Easing { } } public class EasingInOutQuint implements Easing { public float get(float t) { t *= 2; if (t < 1) { @@ -392,8 +405,8 @@ class EasingInOutQuint extends Easing { } } public class EasingInOutSine implements Easing { public float get(float t) { return -0.5 * (cos(PI * t) - 1); } } -
cocopon created this gist
Dec 2, 2014 .There are no files selected for viewing
This file contains hidden or 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 charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,576 @@ /* * Easing.pde - brings Robert Penner's easing functions into Processing * (c) 2014 cocopon. * * See the following to learn more about these famous functions: * http://www.robertpenner.com/easing/ * * License: * http://www.robertpenner.com/easing_terms_of_use.html */ /* * Usage: * * 1. Put this file in the same folder as your sketch. * + your_sketch/ * |-- your_sketch.pde * |-- Easing.pde * |-- ... * * 2. Enjoy! * // Easier way to use an easing function * // (t: 0.0 ~ 1.0) * float value = easeOutBack(t); * ... * * // You can also instanciate an easing function * Easing easing = new EasingOutBack(); * float value = easing.get(t); * ... */ class Easing { float get(float t) { return t; } } class EasingInBack extends Easing { float get(float t, float s) { return t * t * ((s + 1) * t - s); } float get(float t) { return get(t, 1.70158); } } class EasingInBounce extends Easing { float get(float t) { t = 1.0 - t; if (t < 1 / 2.75) { return 1.0 - (7.5625 * t * t); } if (t < 2 / 2.75) { t -= 1.5 / 2.75; return 1.0 - (7.5625 * t * t + 0.75); } if (t < 2.5 / 2.75) { t -= 2.25 / 2.75; return 1.0 - (7.5625 * t * t + 0.9375); } t -= 2.625 / 2.75; return 1.0 - (7.5625 * t * t + 0.984375); } } class EasingInCirc extends Easing { float get(float t) { return -(sqrt(1 - t * t) - 1); } } class EasingInCubic extends Easing { float get(float t) { return t * t * t; } } class EasingInElastic extends Easing { float get(float t, float s) { float p = 0.3; float a = 1.0; if (t == 0) { return 0; } if (t == 1.0) { return 1.0; } if (a < 1.0) { a = 1.0; s = p / 4; } else { s = p / (2 * 3.1419) * asin(1.0 / a); } --t; return -(a * pow(2, 10 * t) * sin((t - s) * (2 * 3.1419) / p)); } float get(float t) { return get(t, 1.70158); } } class EasingInExpo extends Easing { float get(float t) { return (t == 0) ? 0 : pow(2, 10 * (t - 1)); } } class EasingInQuad extends Easing { float get(float t) { return t * t; } } class EasingInQuart extends Easing { float get(float t) { return t * t * t * t; } } class EasingInQuint extends Easing { float get(float t) { return t * t * t * t * t; } } class EasingInSine extends Easing { float get(float t) { return -cos(t * (PI / 2)) + 1.0; } } class EasingOutBack extends Easing { float get(float t, float s) { --t; return t * t * ((s + 1.0) * t + s) + 1.0; } float get(float t) { return get(t, 1.70158); } } class EasingOutBounce extends Easing { float get(float t) { if (t < 1 / 2.75) { return 7.5625 * t * t; } if (t < 2 / 2.75) { t -= 1.5 / 2.75; return 7.5625 * t * t + 0.75; } if (t < 2.5 / 2.75) { t -= 2.25 / 2.75; return 7.5625 * t * t + 0.9375; } t -= 2.625 / 2.75; return 7.5625 * t * t + 0.984375; } } class EasingOutCirc extends Easing { float get(float t) { --t; return sqrt(1 - t * t); } } class EasingOutCubic extends Easing { float get(float t) { --t; return t * t * t + 1; } } class EasingOutElastic extends Easing { float get(float t, float s) { float p = 0.3; float a = 1.0; if (t == 0) { return 0; } if (t == 1.0) { return 1.0; } if (a < 1.0) { a = 1.0; s = p / 4; } else { s = p / (2 * 3.1419) * asin(1.0 / a); } return a * pow(2, -10 * t) * sin((t - s) * (2 * 3.1419) / p) + 1.0; } float get(float t) { return get(t, 1.70158); } } class EasingOutExpo extends Easing { float get(float t) { return (t == 1.0) ? 1.0 : (-pow(2, -10 * t) + 1); } } class EasingOutQuad extends Easing { float get(float t) { return -t * (t - 2); } } class EasingOutQuart extends Easing { float get(float t) { --t; return 1.0 - t * t * t * t; } } class EasingOutQuint extends Easing { float get(float t) { --t; return t * t * t * t * t + 1; } } class EasingOutSine extends Easing { float get(float t) { return sin(t * (PI / 2)); } } class EasingInOutBack extends Easing { float get(float t, float s) { float k = 1.525; t *= 2; s *= k; if (t < 1) { return 0.5 * (t * t * ((s + 1) * t - s)); } t -= 2; return 0.5 * (t * t * ((s + 1) * t + s) + 2); } float get(float t) { return get(t, 1.70158); } } class EasingInOutBounce extends Easing { Easing inBounce_ = new EasingInBounce(); Easing outBounce_ = new EasingOutBounce(); float get(float t) { return (t < 0.5) ? (inBounce_.get(t * 2) * 0.5) : (outBounce_.get(t * 2 - 1.0) * 0.5 + 0.5); } } class EasingInOutCirc extends Easing { float get(float t) { t *= 2; if (t < 1) { return -0.5 * (sqrt(1 - t * t) - 1); } t -= 2; return 0.5 * (sqrt(1 - t * t) + 1); } } class EasingInOutCubic extends Easing { float get(float t) { t *= 2; if (t < 1) { return 0.5 * t * t * t; } t -= 2; return 0.5 * (t * t * t + 2); } } class EasingInOutElastic extends Easing { float get(float t, float s) { float p = 0.3 * 1.5; float a = 1.0; if (t == 0) { return 0; } if (t == 1.0) { return 1.0; } if (a < 1.0) { a = 1.0; s = p / 4; } else { s = p / (2 * 3.1419) * asin(1.0 / a); } if (t < 1) { --t; return -0.5 * (a * pow(2, 10 * t) * sin((t - s) * (2 * 3.1419) / p)); } --t; return a * pow(2, -10 * t) * sin((t - s) * (2 * 3.1419) / p) * 0.5 + 1.0; } float get(float t) { return get(t, 1.70158); } } class EasingInOutExpo extends Easing { float get(float t) { if (t == 0) { return 0; } if (t == 1.0) { return 1.0; } t *= 2; if (t < 1) { return 0.5 * pow(2, 10 * (t - 1)); } --t; return 0.5 * (-pow(2, -10 * t) + 2); } } class EasingInOutQuad extends Easing { float get(float t) { t *= 2; if (t < 1) { return 0.5 * t * t; } --t; return -0.5 * (t * (t - 2) - 1); } } class EasingInOutQuart extends Easing { float get(float t) { t *= 2; if (t < 1) { return 0.5 * t * t * t * t; } t -= 2; return -0.5 * (t * t * t * t - 2); } } class EasingInOutQuint extends Easing { float get(float t) { t *= 2; if (t < 1) { return 0.5 * t * t * t * t * t; } t -= 2; return 0.5 * (t * t * t * t * t + 2); } } class EasingInOutSine extends Easing { float get(float t) { return -0.5 * (cos(PI * t) - 1); } } Easing inBack__ = new EasingInBack(); Easing inBounce__ = new EasingInBounce(); Easing inCirc__ = new EasingInCirc(); Easing inCubic__ = new EasingInCubic(); Easing inElastic__ = new EasingInElastic(); Easing inExpo__ = new EasingInExpo(); Easing inQuad__ = new EasingInQuad(); Easing inQuart__ = new EasingInQuart(); Easing inQuint__ = new EasingInQuint(); Easing inSine__ = new EasingInSine(); Easing outBack__ = new EasingOutBack(); Easing outBounce__ = new EasingOutBounce(); Easing outCirc__ = new EasingOutCirc(); Easing outCubic__ = new EasingOutCubic(); Easing outElastic__ = new EasingOutElastic(); Easing outExpo__ = new EasingOutExpo(); Easing outQuad__ = new EasingOutQuad(); Easing outQuart__ = new EasingOutQuart(); Easing outQuint__ = new EasingOutQuint(); Easing outSine__ = new EasingOutSine(); Easing inOutBack__ = new EasingInOutBack(); Easing inOutBounce__ = new EasingInOutBounce(); Easing inOutCirc__ = new EasingInOutCirc(); Easing inOutCubic__ = new EasingInOutCubic(); Easing inOutElastic__ = new EasingInOutElastic(); Easing inOutExpo__ = new EasingInOutExpo(); Easing inOutQuad__ = new EasingInOutQuad(); Easing inOutQuart__ = new EasingInOutQuart(); Easing inOutQuint__ = new EasingInOutQuint(); Easing inOutSine__ = new EasingInOutSine(); float easeInBack(float t, float s) { return ((EasingInBack)inBack__).get(t, s); } float easeInBack(float t) { return inBack__.get(t); } float easeInBounce(float t) { return inBounce__.get(t); } float easeInCirc(float t) { return inCirc__.get(t); } float easeInCubic(float t) { return inCubic__.get(t); } float easeInElastic(float t, float s) { return ((EasingInElastic)inElastic__).get(t, s); } float easeInElastic(float t) { return inElastic__.get(t); } float easeInExpo(float t) { return inExpo__.get(t); } float easeInQuad(float t) { return inQuad__.get(t); } float easeInQuart(float t) { return inQuart__.get(t); } float easeInQuint(float t) { return inQuint__.get(t); } float easeInSine(float t) { return inSine__.get(t); } float easeOutBack(float t, float s) { return ((EasingOutBack)outBack__).get(t, s); } float easeOutBack(float t) { return outBack__.get(t); } float easeOutBounce(float t) { return outBounce__.get(t); } float easeOutCirc(float t) { return outCirc__.get(t); } float easeOutCubic(float t) { return outCubic__.get(t); } float easeOutElastic(float t, float s) { return ((EasingOutElastic)outElastic__).get(t, s); } float easeOutElastic(float t) { return outElastic__.get(t); } float easeOutExpo(float t) { return outExpo__.get(t); } float easeOutQuad(float t) { return outQuad__.get(t); } float easeOutQuart(float t) { return outQuart__.get(t); } float easeOutQuint(float t) { return outQuint__.get(t); } float easeOutSine(float t) { return outSine__.get(t); } float easeInOutBack(float t, float s) { return ((EasingInOutBack)inOutBack__).get(t, s); } float easeInOutBack(float t) { return inOutBack__.get(t); } float easeInOutBounce(float t) { return inOutBounce__.get(t); } float easeInOutCirc(float t) { return inOutCirc__.get(t); } float easeInOutCubic(float t) { return inOutCubic__.get(t); } float easeInOutElastic(float t, float s) { return ((EasingInOutElastic)inOutElastic__).get(t, s); } float easeInOutElastic(float t) { return inOutElastic__.get(t); } float easeInOutExpo(float t) { return inOutExpo__.get(t); } float easeInOutQuad(float t) { return inOutQuad__.get(t); } float easeInOutQuart(float t) { return inOutQuart__.get(t); } float easeInOutQuint(float t) { return inOutQuint__.get(t); } float easeInOutSine(float t) { return inOutSine__.get(t); }