easeInOut method

  1. @override
double easeInOut(
  1. double k
)
override

Implementation

@override
double easeInOut(double k) {
  double s, a = 0.1, p = 0.4;
  if (k == 0) return 0;
  if (k == 1) return 1;
  if (a < 1) {
    a = 1;
    s = p / 4;
  } else {
    s = p * asin(1 / a) / (2 * pi);
  }
  if ((k *= 2) < 1) {
    return -0.5 * (a * pow(2, 10 * (k -= 1)) * sin((k - s) * (2 * pi) / p));
  }
  return a * pow(2, -10 * (k -= 1)) * sin((k - s) * (2 * pi) / p) * 0.5 + 1;
}