Interpolação Cúbica / Curva Suave em C # [fechado]
Abaixo está uma função de interpolação cúbica:
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));
}
Esta função interpolará cubicamente entre o valor inicial e final, dado um valor entre 0.0f - 1.0f. Se você fosse traçar essa curva, você acabaria com algo assim:
Imagem expirada do Imageshack removida
A função cúbica aqui é:
amount = (amount * amount) * (3f - (2f * amount));
Como faço para ajustar isso para produzir duas tangentes dentro e fora?
Para produzir curvas como esta: (Início linear ao fim cúbico)
Imagem expirada do Imageshack removida
Como uma função
e assim como outro: (começo cúbico para final linear)
Imagem expirada do Imageshack removida
Alguém tem alguma ideia? Desde já, obrigado.