transform method
- @override
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);
double start = 0.0;
double end = 1.0;
while (true) {
final double midpoint = (start + end) / 2;
final double estimate = _evaluateCubic(a, c, midpoint);
if ((t - estimate).abs() < _cubicErrorBound)
return _evaluateCubic(b, d, midpoint);
if (estimate < t)
start = midpoint;
else
end = midpoint;
}
}