Sześcienna / gładka interpolacja w C # [zamknięte]

Poniżej znajduje się funkcja interpolacji sześciennej:

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));
}

Ta funkcja będzie sześciennie interpolować między wartością początkową i końcową, podając wartość pomiędzy 0,0f - 1,0f. Gdybyś miał wykreślić tę krzywą, skończyłbyś na czymś takim:

Usunięto utracony obraz Imageshack

Funkcja sześcienna tutaj:

    amount = (amount * amount) * (3f - (2f * amount));

Jak dostosować to, aby uzyskać dwie styczne do produkcji?

Aby utworzyć krzywe w ten sposób: (Początek liniowy do końca sześciennego)

Usunięto utracony obraz Imageshack

Jako jedna funkcja

i tak jak inne: (początek sześcienny do końca liniowego)

Usunięto utracony obraz Imageshack

Czy ktoś ma jakieś pomysły? Z góry dziękuję.

questionAnswers(3)

yourAnswerToTheQuestion