8 static float EaseInSine(
float t)
10 return -1 *
Math.Cos(t *
Math.PI_HALF) + 1;
17 static float EaseOutSine(
float t)
26 static float EaseInOutSine(
float t)
28 return -0.5 * (
Math.Cos(
Math.PI * t) - 1);
35 static float EaseInQuad(
float t)
44 static float EaseOutQuad(
float t)
53 static float EaseInOutQuad(
float t)
58 return -1 + (4 - 2 * t) * t;
65 static float EaseInCubic(
float t)
74 static float EaseOutCubic(
float t)
77 return t1 * t1 * t1 + 1;
84 static float EaseInOutCubic(
float t)
89 return (t - 1) * (2 * t - 2) * (2 * t - 2) + 1;
96 static float EaseInQuart(
float t)
105 static float EaseOutQuart(
float t)
108 return 1 - t1 * t1 * t1 * t1;
115 static float EaseInOutQuart(
float t)
120 return 8 * t * t * t * t;
122 return 1 - 8 * t1 * t1 * t1 * t1;
129 static float EaseInQuint(
float t)
131 return t * t * t * t * t;
138 static float EaseOutQuint(
float t)
141 return 1 + t1 * t1 * t1 * t1 * t1;
148 static float EaseInOutQuint(
float t)
153 return 16 * t * t * t * t * t;
155 return 1 + 16 * t1 * t1 * t1 * t1 * t1;
162 static float EaseInExpo(
float t)
167 return (10 * (t - 1)) * (10 * (t - 1));
174 static float EaseOutExpo(
float t)
179 return -((-10 * t) * (-10 * t)) + 1;
186 static float EaseInOutExpo(
float t)
188 if (t == 0 || t == 1)
191 float scaledTime = t * 2;
192 float scaledTime1 = scaledTime - 1;
195 return 0.5 * (10 * scaledTime1) * (10 * scaledTime1);
197 return 0.5 * (-(10 * scaledTime1 * 10 * scaledTime1) + 2);
204 static float EaseInCirc(
float t)
206 return -1 * (
Math.Sqrt(1 - t * t) - 1);
213 static float EaseOutCirc(
float t)
216 return Math.Sqrt(1 - t1 * t1);
223 static float EaseInOutCirc(
float t)
225 float scaledTime = t * 2;
226 float scaledTime1 = scaledTime - 2;
229 return -0.5 * (
Math.Sqrt(1 - scaledTime * scaledTime) - 1);
231 return 0.5 * (
Math.Sqrt(1 - scaledTime1 * scaledTime1) + 1);
239 static float EaseInBack(
float t,
float magnitude = 1.70158)
241 return t * t * ((magnitude + 1) * t - magnitude);
249 static float EaseOutBack(
float t,
float magnitude = 1.70158)
251 float scaledTime = t - 1;
252 return (scaledTime * scaledTime * ((magnitude + 1) * scaledTime + magnitude)) + 1;
260 static float EaseInOutBack(
float t,
float magnitude = 1.70158)
262 float scaledTime = t * 2;
263 float scaledTime2 = scaledTime - 2;
265 float s = magnitude * 1.525;
268 return 0.5 * scaledTime * scaledTime * (((s + 1) * scaledTime) - s);
270 return 0.5 * (scaledTime2 * scaledTime2 * ((s + 1) * scaledTime2 + s) + 2);
278 static float EaseInElastic(
float t,
float magnitude = 0.7)
280 if (t == 0 || t == 1)
283 float scaledTime = t;
284 float scaledTime1 = scaledTime - 1;
286 float p = 1 - magnitude;
287 float s = p /
Math.PI2 *
Math.PI_HALF;
289 return -(10 * scaledTime1 * 10 * scaledTime1 *
Math.Sin((scaledTime1 - s) *
Math.PI2 / p));
297 static float EaseOutElastic(
float t,
float magnitude = 0.7)
299 float p = 1 - magnitude;
300 float scaledTime = t * 2;
302 if (t == 0 || t == 1)
305 float s = p /
Math.PI2 *
Math.PI_HALF;
306 return (10 * scaledTime * 10 * scaledTime *
Math.Sin((scaledTime - s) *
Math.PI2 / p)) + 1;
314 static float EaseInOutElastic(
float t,
float magnitude = 0.65)
316 float p = 1 - magnitude;
318 if (t == 0 || t == 1)
321 float scaledTime = t * 2;
322 float scaledTime1 = scaledTime - 1;
324 float s = p /
Math.PI2 *
Math.PI_HALF;
327 return -0.5 * ((10 * scaledTime1) * (10 * scaledTime1) *
Math.Sin((scaledTime1 - s) *
Math.PI2 / p));
329 return (10 * scaledTime1 * 10 * scaledTime1 *
Math.Sin((scaledTime1 - s) *
Math.PI2 / p) * 0.5) + 1;
336 static float EaseOutBounce(
float t)
338 float scaledTime = t;
340 if (scaledTime < (1 / 2.75))
341 return 7.5625 * scaledTime * scaledTime;
343 if (scaledTime < (2 / 2.75))
345 scaledTime2 = scaledTime - (1.5 / 2.75);
346 return (7.5625 * scaledTime2 * scaledTime2) + 0.75;
349 if (scaledTime < (2.5 / 2.75))
351 scaledTime2 = scaledTime - (2.25 / 2.75);
352 return (7.5625 * scaledTime2 * scaledTime2) + 0.9375;
355 scaledTime2 = scaledTime - (2.625 / 2.75);
356 return (7.5625 * scaledTime2 * scaledTime2) + 0.984375;
363 static float EaseInBounce(
float t)
365 return 1 - EaseOutBounce(1 - t);
372 static float EaseInOutBounce(
float t)
375 return EaseInBounce(t * 2) * 0.5;
377 return (EaseOutBounce((t * 2) - 1) * 0.5) + 0.5;