Другой способ кажется достаточно простым, если вы думаете, что в момент времени t
(где t колеблется от 0 до 1) значение канала равно:
start + t * (end - start)
Таким образом, есликонечное значение меньше начального значения (как в случае красного -> черного), предложение end - start
является отрицательным, поэтому с увеличением времени значение уменьшается по мере необходимости.
Также следует видеть, что в крайних случаях
t = 0 => start + 0 = start
t = 1 => start + (end - start) = end
, как требуется.
Редактировать: Приятная вещь в этом представлении состоит в том, что оно ясно дает понять, как изменитьскорость распада, а также.До тех пор, пока значение t
начинается с 0 и в конечном итоге достигает 1, его необязательно изменять линейно.Например, если вы хотите, чтобы интерполяция начиналась медленно и ускорялась к концу, вы могли бы вместо этого использовать t 2 .