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