Interpolación suave cúbica / curva en C # [cerrado]
A continuación se muestra una función de interpolación 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 función se interpolará cúbicamente entre el valor inicial y el final, dada una cantidad entre 0.0f - 1.0f. Si fueras a trazar esta curva, terminarías con algo como esto:
Imagen de Imagehack expirada eliminada
La función cúbica aquí es:
amount = (amount * amount) * (3f - (2f * amount));
¿Cómo puedo ajustar esto para producir dos tangentes de producción dentro y fuera?
Para producir curvas como esta: (Inicio lineal hasta final cúbico)
Imagen de Imagehack expirada eliminada
Como una funcion
Y así como otro: (principio cúbico a fin lineal).
Imagen de Imagehack expirada eliminada
¿Alguien tiene alguna idea? Gracias por adelantado.