Interpolación suave cúbica/curva en C#

Interpolación suave cúbica/curva en C#

Lo que quieres es un Cubic Hermite Spline:

donde p0 es el punto inicial, p1 es el punto final, m0 es la tangente inicial y m1 es la tangente final


podría tener una interpolación lineal y una interpolación cúbica e interpolar entre las dos funciones de interpolación.

es decir.

cubic(t) = cubic interpolation
linear(t) = linear interpolation
cubic_to_linear(t) = linear(t)*t + cubic(t)*(1-t)
linear_to_cubic(t) = cubic(t)*t + linear(t)*(1-t)

donde t varía de 0...1