QuinticEaseInOut.cs 653 B

1234567891011121314151617181920212223242526
  1. namespace Avalonia.Animation.Easings
  2. {
  3. /// <summary>
  4. /// Eases a <see cref="double"/> value
  5. /// using a piece-wise quartic equation.
  6. /// </summary>
  7. public class QuinticEaseInOut : Easing
  8. {
  9. /// <inheritdoc/>
  10. public override double Ease(double progress)
  11. {
  12. double p = progress;
  13. if (p < 0.5d)
  14. {
  15. double p2 = p * p;
  16. return 16d * p2 * p2 * p;
  17. }
  18. else
  19. {
  20. double f = 2d * p - 2d;
  21. double f2 = f * f;
  22. return 0.5d * f2 * f2 * f + 1d;
  23. }
  24. }
  25. }
  26. }