interpolate package
Sometimes you need to map value from one range to another. This is where you should use interpolate functions which approximates values between points in the output range and lets you map value inside the input range to corresponded approximation in the output range. It also supports few types of Extrapolation to enable mapping outside the range.
Usage
final double scale = interpolate(
value: _scrollController.offset,
inputRange: [
itemWidth * (index - 2),
itemWidth * (index - 1),
itemWidth * index,
itemWidth * (index + 1),
itemWidth * (index + 2),
],
outputRange: [0.8, 0.8, 1.0, 0.8, 0.8],
extrapolate: Extrapolate.extend,
);
inputRange, outputRange
- The
inputRange
is the range of the input values. - The
outputRange
is the range of the output values. - The output value is calculated by interpolating between the two values in the input range.
- The
inputRange
andoutputRange
must have the same length.
Extrapolate
- The
extrapolate
argument determines how the input value is extrapolated beyond the input range. - If
extrapolate
isExtrapolate.identity
, theinputRange
values are assumed to be increasing and the output value is clamped to the range. - If
extrapolate
isExtrapolate.extend
, theinputRange
values are assumed to be increasing and the output value is extended beyond the range. - If
extrapolate
isExtrapolate.clamp
, theinputRange
values are assumed to be increasing and the output value is clamped to the range.
Credits
Libraries
- interpolate_animated
- Created by nghinv on Sun Jul 17 2022