Кубическая / Кривая Гладкая интерполяция в 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

У кого-нибудь есть идеи? Заранее спасибо.

Ответы на вопрос(3)

Ваш ответ на вопрос