Ниже представлена кубическая интерполяционная функция:
public float Smooth(float start, float end, float amount)
{
// Clamp to 0-1;
amount = (amount > 1f) ? 1f : amount;
amount = (amount < 0f) ? 0f : amount;
// Cubicly adjust the amount value.
amount = (amount * amount) * (3f - (2f * amount));
return (start + ((end - start) * amount));
}
Эта функция будет кубически интерполировать между начальным и конечным значением с учетом величины между 0.0f - 1.0f. Если бы вы построили эту кривую, у вас получилось бы что-то вроде этого:
Удалено изображение с удаленным снимком
Кубическая функция здесь:
amount = (amount * amount) * (3f - (2f * amount));
Как мне настроить это для создания двух выходных тангенсов?
Чтобы создать такие кривые: (Линейное начало до кубического конца)
Удалено изображение с удаленным снимком
Как одна функция
и как это как другое: (Кубический старт до линейного конца)
Удалено изображение с удаленным снимком
У кого-нибудь есть идеи? Спасибо заранее.