Мне интересно, есть ли способ сделать эту функцию:
float linearInterpolation(float startPoint, float endPoint, float time)
{
return startPoint + ((endPoint - startPoint) * time);
}
Более линейный, так как сейчас, когда начальная точка приближается к своей конечной точке, она идет медленнее, я просто хочу, чтобы она двигалась с одинаковой скоростью на всем протяжении без замедления / ускорения. Если мне нужно реализовать другую переменную или что-то, что может быть сделано. Другая функция, которая будет принимать те же переменные и выводить следующее значение, также будет приемлемой.
Это похоже на правильную реализацию lerp для меня. Не видя код, с которым вы его вызываете, я буду догадываться, что причина его замедления в том, что вы вызываете его с другой точкой запуска (вызов с предыдущим результатом вызова linearInterpolation вызовет это) каждый время (кадр?), которое может привести к его замедлению, поскольку расстояние для интерполяции уменьшается при каждом вызове.
Убедитесь, что переменные startPoint и endPoint одинаковы для каждого вызова в течение срока жизни интерполяции, и увеличивается только переменная времени.
Других решений пока нет …