Интерполяция в C++
Линейная интерполяция задает точку между двумя числами по доле пути от первого ко второму.
Функция lerp из <numeric>
принимает начало, конец и коэффициент
t. При t = 0 получается
первое значение, при t = 1 -
второе. Запишем концы и выведем точку
посередине:
#include <numeric>
#include <iostream>
double from = 10.0;
double to = 20.0;
std::cout << std::lerp(from, to, 0.5) << "\n";
Коэффициент может выходить за отрезок
0-1 - тогда результат лежит
на продолжении прямой. Запишем дробные
концы с t = 0.25 и выведем:
#include <numeric>
#include <iostream>
std::cout << std::lerp(0.0, 8.0, 0.25) << "\n";
Интерполируйте между 2.0 и 10.0
с t = 0.75 через std::lerp.
Выведите результат.