public static void Main(string[] args)
var colours = new string[] {"red","green","purple","orange","lilac","red","green","purple","orange","lilac","red","green","purple","orange","lilac","red","green","purple","orange","lilac"};
for (float i = 0; i < durationS; i = i + 0.1f)
var z = ExpoEaseOut(i, 0, colours.Length, durationS);
Console.WriteLine(colours[(int)z] + " \t" + z);
for (float i = 0; i < durationS; i = i + 0.1f)
var z = CircEaseOut(i, 0, colours.Length, durationS);
Console.WriteLine(colours[(int)z] + " \t" + z);
public static float ExpoEaseOut(float t, float b, float c, float d)
return (t == d) ? b + c : c * (-(float)Math.Pow(2, -10 * t / d) + 1) + b;
public static float CircEaseIn(float t, float b, float c, float d)
return -c * ((float)Math.Sqrt(1 - (t /= d) * t) - 1) + b;
public static float CircEaseOut(float t, float b, float c, float d)
return c * (float)Math.Sqrt(1 - (t = t / d - 1) * t) + b;