Skip to content

Instantly share code, notes, and snippets.

@ecto
Created November 19, 2011 08:11
Show Gist options
  • Save ecto/1378614 to your computer and use it in GitHub Desktop.
Save ecto/1378614 to your computer and use it in GitHub Desktop.
// t: current time
// b: beginning value
// c: change in value
// d: duration
var elast = function (t, b, c, d) {
var s=1.70158;var p=0;var a=c;
if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
if (a < Math.abs(c)) { a=c; var s=p/4; }
else var s = p/(2*Math.PI) * Math.asin (c/a);
return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
}
var x = 100,
t = 0;
for (var i = 0; i < 100; i++) {
console.log(
elast(t++, x, -1 * x, 100)
);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment