Ниже приведена функция линейной интерполяции:
float lerp (float a, float b, float weight) {
return a + weight * (b - a);
}
Ниже приведена функция интерполяции c в кубе:
float cubic (float p1, float p2, float p3, float p4, float weight) {
float m = weight * weight;
float a = p4 - p3 - p1 + p2;
float b = p1 - p2 - a;
float c = p3 - p1;
float d = p2;
return a * weight * m + b * m + c * weight + d;
}
Как называется следующий метод ?:
float lerp (float a, float b, float weight) {
float v = weight * weigth * (3.0f - 2.0f * weight);
return a + v * (b - a);
}
Я видел, как некоторые люди ссылались на вышеупомянутый метод как на «cubi c», но для меня для кубической c интерполяции требуется 4 точки.
Кроме того, Я также видел следующее:
float lerp (float a, float b, float weight) {
float v = weight * weight * weight * (weight * (weight * 6.0f - 15.0f) + 10.0f);
return a + v * (b - a);
}
Приведенный выше код упоминается как «quinti c», но я не совсем уверен, как эти функции могут быть «cubi c» и «quinti c» без необходимых дополнительных «точек».
Как называются эти операции, выполняемые над «весами»?
float v = weight * weigth * (3.0f - 2.0f * weight);
float v = weight * weight * weight * (weight * (weight * 6.0f - 15.0f) + 10.0f);