Чтобы сделать линейную интерполяцию между двумя переменными a
и b
с учетом доли f
, я в настоящее время использую этот код:
float lerp(float a, float b, float f)
{
return (a * (1.0 - f)) + (b * f);
}
Я думаю, что, возможно, более эффективный способ сделать это. Я использую микроконтроллер без FPU, поэтому операции с плавающей запятой выполняются в программном обеспечении. Они достаточно быстры, но все равно что-то вроде 100 циклов для добавления или умножения.
Любые предложения?
n.b. для ясности в уравнении в приведенном выше коде мы можем опустить указание 1.0
как явный литерал с плавающей запятой.