Кубическая / Кривая Гладкая интерполяция в C # [закрыто]
Ниже приведена кубическая интерполяционная функция:
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. Если бы вы построили эту кривую, вы бы получили что-то вроде этого:
Expired Imageshack image removed
Кубическая функция здесь:
amount = (amount * amount) * (3f - (2f * amount));
Как мне отрегулировать это, чтобы получить два касательных производства?
Чтобы получить кривые, как это: (линейное начало до кубического конца)
Expired Imageshack image removed
Как одна функция
и вот так как другой: (кубический начало до линейного конца)
Expired Imageshack image removed
У кого-нибудь есть идеи? Заранее спасибо.