#flutter #interpolation #opacity #lerp
#трепетание #интерполяция #непрозрачность #lerp
Вопрос:
Я пытаюсь выяснить, есть ли способ использовать интерполяцию вместо более сложного вычисления и третичного оператора.
В этом примере есть контейнер, непрозрачность которого определяется на основе другого вызываемого значения status
. Когда статус находится между -0.8 и -1, непрозрачность должна интерполироваться между 0 и 1.
До сих пор я достиг этого таким образом, но я надеюсь, что есть способ добиться этого с помощью a lerp
или аналогичного.
final double startAt = 0.8;
double _opacity = status > (startAt * -1)
? 0
: (((status * -1) - startAt) * 4);
Комментарии:
1. это метод norm() , взятый из
MathUtils
класса android — вы можете вызватьnum.clamp()
результат, если хотите быть уверенным, что результат находится в диапазоне [0 ..1], независимо от того, чтоvalue
вы предоставляете (в вашем случаеstatus
)