Мне нужно реализовать метод нелинейной интерполяции между значениями, плавностью входа и выхода, общими кривыми плавности, а также кривыми, определенными пользователем.
У меня есть базовое представление о том, как это сделать, но я не уверен, что это будет самое эффективное решение. Моя идея в основном такова:
Используйте двумерную кубическую, квадратичную кривую или кривую Безье n-го порядка для управления интерполяцией. Пройдитесь по кривой линейно, чтобы получить нелинейную компоненту Y, и используйте ее для значения, чтобы передать простой метод линейной интерполяции:
value = v1 + (v2 - v1) * t;
Где t — нелинейная компонента Y контрольной кривой.
Это позволяет использовать пользовательские методы интерполяции, определяемые пользователем, но за это приходится платить: стоимость одной нелинейной интерполяции равна:
1 + 2 * (n-1)
общее количество интерполяций, где n — порядок или количество контрольных точек контрольной кривой.
Я НЕ МАТЕМАТИК, это лучшее, что я мог придумать, поэтому мой вопрос в том, есть ли лучшее решение?
РЕДАКТИРОВАТЬ: я, вероятно, неправильно объясняю, я не носитель языка, поэтому, надеюсь, все поймут: