I am trying to understand how the math unfolds through this code, easingDoc
function easeInOutQuad (t, b, c, d) {
if ((t/=d/2) < 1) return c/2*t*t + b;
return -c/2 * ((--t)*(t-2) - 1) + b;
}
console.log(easeInOutQuad(0.3,50,150,1));
console.log(easeInOutQuad(0.95,50,150,1));
I am trying to decipher the equation for both the conditions. While I understand, the condition for if ((t/=d/2)
from this post describes what t/=d
means and how it affects the calculation.
For example, (t/=d/2)<1
the code can be rewritten as following and it would produce the identical result. Such as,
function easeInOutQuad (t, b, c, d) {
if ((t/=d/2) < 1) return c/2*t*t + b;
return -c/2 * ((--t)*(t-2) - 1) + b;
}
function alternate (t,b,c,d){
if (2*t/d < 1) return c/2*(2*t/d)*(2*t/d)+b;
return 999999;};
console.log(easeInOutQuad(0.3,50,150,1));
console.log(alternate(0.3,50,150,1)); //(150/2)*(2*0.3/1)*(2*0.3/1)+50
console.log(easeInOutQuad(0.45,50,150,1));
console.log(alternate(0.45,50,150,1));//(150/2)*(2*0.45/1)*(2*0.45/1)+50
I was wondering how can I express return -c/2 * ((--t)*(t-2) - 1) + b
explicitly in equation like console.log(alternate(0.3,50,150,1)); //(150/2)*(2*0.3/1)*(2*0.3/1)+50
so that I can undersatnd what the math is for that part.