알아두면 유용하다. 이 방정식을 게임에 적용시키면 움직임 퀄이 괜찮게 나온다.
Math.linearTween = function (t, b, c, d) { return c*t/d + b; }; |
Math.easeInQuad = function (t, b, c, d) { t /= d; return c*t*t + b; }; |
Math.easeOutQuad = function (t, b, c, d) { t /= d; return -c * t*(t-2) + b; }; |
Math.easeInCubic = function (t, b, c, d) { t /= d; return c*t*t*t + b; }; |
Math.easeOutCubic = function (t, b, c, d) { t /= d; t--; return c*(t*t*t + 1) + b; }; |
// cubic easing in/out - acceleration until halfway, then deceleration |
Math.easeInOutCubic = function (t, b, c, d) { t /= d/2; if (t < 1) return c/2*t*t*t + b; t -= 2; return c/2*(t*t*t + 2) + b; }; |
Math.easeInQuart = function (t, b, c, d) { t /= d; return c*t*t*t*t + b; }; |
Math.easeOutQuart = function (t, b, c, d) { t /= d; t--; return -c * (t*t*t*t - 1) + b; }; |
Math.easeInQuint = function (t, b, c, d) { t /= d; return c*t*t*t*t*t + b; }; |
Math.easeOutQuint = function (t, b, c, d) { t /= d; t--; return c*(t*t*t*t*t + 1) + b; }; |
Math.easeInSine = function (t, b, c, d) { return -c * Math.cos(t/d * (Math.PI/2)) + c + b; }; |
Math.easeOutSine = function (t, b, c, d) { return c * Math.sin(t/d * (Math.PI/2)) + b; }; |
// sinusoidal easing in/out - accelerating until halfway, then decelerating |
Math.easeInOutSine = function (t, b, c, d) { return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b; }; |
Math.easeInExpo = function (t, b, c, d) { return c * Math.pow( 2, 10 * (t/d - 1) ) + b; }; |
Math.easeOutExpo = function (t, b, c, d) { return c * ( -Math.pow( 2, -10 * t/d ) + 1 ) + b; }; |
Math.easeInCirc = function (t, b, c, d) { t /= d; return -c * (Math.sqrt(1 - t*t) - 1) + b; }; |
Math.easeOutCirc = function (t, b, c, d) { t /= d; t--; return c * Math.sqrt(1 - t*t) + b; }; |
반응형
'Mathmatics' 카테고리의 다른 글
[스크랩] 벡터의 내적, 외적과 투영 (0) | 2012.12.14 |
---|---|
[스크랩] Reflection vector (0) | 2012.12.14 |
프밍할때 3D 좌표계에 대해..!! (0) | 2012.12.05 |