transform method

  1. @override
double transform (double t)
override

Returns the value of the curve at point t.

The value of t must be between 0.0 and 1.0, inclusive. Subclasses should assert that this is true.

A curve must map t=0.0 to 0.0 and t=1.0 to 1.0.

Implementation

@override
double transform(double t) {
  assert(t >= 0.0 && t <= 1.0);
  final double s = period / 4.0;
  t = 2.0 * t - 1.0;
  if (t < 0.0)
    return -0.5 * math.pow(2.0, 10.0 * t) * math.sin((t - s) * (math.pi * 2.0) / period);
  else
    return math.pow(2.0, -10.0 * t) * math.sin((t - s) * (math.pi * 2.0) / period) * 0.5 + 1.0;
}