РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
114 of 815 menu

Функция lerp

Функция lerp выполняет линейную интерполяцию между двумя значениями. В первый параметр мы передаём начальное значение, во второй - конечное значение, а в третий - коэффициент интерполяции от 0.0 до 1.0. Если коэффициент равен 0.0, функция вернёт начальное значение, если 1.0 - конечное, а при промежуточных значениях - пропорционально смешанный результат. Функция доступна в заголовочном файле <cmath> начиная со стандарта C++20.

Синтаксис

lerp(start, end, t)

Также существует перегрузка с явным указанием типа результата:

lerp(start, end, t)

Пример

Давайте найдём значение, находящееся ровно посередине между 0.0 и 10.0:

#include <iostream> #include <cmath> using namespace std; int main() { double res = lerp(0.0, 10.0, 0.5); cout << res << endl; return 0; }

Результат выполнения кода:

5

Пример

Давайте получим значение, смещённое на четверть от начального к конечному:

#include <iostream> #include <cmath> using namespace std; int main() { double res = lerp(0.0, 8.0, 0.25); cout << res << endl; return 0; }

Результат выполнения кода:

2

Пример

Если коэффициент интерполяции равен 0.0, функция вернёт начальное значение, а если 1.0 - конечное:

#include <iostream> #include <cmath> using namespace std; int main() { cout << lerp(3.0, 7.0, 0.0) << endl; cout << lerp(3.0, 7.0, 1.0) << endl; return 0; }

Результат выполнения кода:

3 7

Смотрите также

  • функция midpoint,
    которая находит среднюю точку между двумя числами
  • функция fma,
    которая выполняет умножение и сложение за одну операцию
  • функция round,
    которая округляет число до ближайшего целого
  • функция abs,
    которая возвращает абсолютное значение числа
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить