Код Middle Анимации и жесты обновлено
Интерполяция как в Reanimated
Условие
Напишите interpolate(value, input, output, extrapolate): линейная интерполяция по точкам. input строго возрастает, output той же длины (не меньше 2 точек). Внутри диапазона значение находится на нужном отрезке. За пределами input:
"extend": продолжить крайний отрезок;"clamp": вернуть крайнее значениеoutput;"identity": вернутьvalueкак есть.
Результат округлите до 6 знаков после запятой (Math.round(x * 1e6) / 1e6).
Примеры
interpolate(0.5, [0, 1], [0, 100], "clamp") // 50
interpolate(0, [0, 1], [1, 0], "clamp") // 1
interpolate(0.25, [0, 1], [1, 0], "clamp") // 0.75
Как подойти
Подсказки: 2
- Сначала обработайте выход за границы по режиму.
- Найдите индекс отрезка
i, гдеinput[i] <= value <= input[i+1]; для extend возьмите крайний отрезок.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.