package it.sephiroth.android.library.easing; public class Bounce implements Easing { @Override public double easeOut(double t, double b, double c, double d) { if ((t /= d) < (1.0 / 2.75)) { return c * (7.5625 * t * t) + b; } else if (t < (2.0 / 2.75)) { return c * (7.5625 * (t -= (1.5 / 2.75)) * t + .75) + b; } else if (t < (2.5 / 2.75)) { return c * (7.5625 * (t -= (2.25 / 2.75)) * t + .9375) + b; } else { return c * (7.5625 * (t -= (2.625 / 2.75)) * t + .984375) + b; } } @Override public double easeIn(double t, double b, double c, double d) { return c - easeOut(d - t, 0, c, d) + b; } @Override public double easeInOut(double t, double b, double c, double d) { if (t < d / 2.0) return easeIn(t * 2.0, 0, c, d) * .5 + b; else return easeOut(t * 2.0 - d, 0, c, d) * .5 + c * .5 + b; } }