Le Spline sono curve controllate dai punti di controllo: usando WPF è immediato disegnare una spline definendone i punti di controllo associati.
E' leggermente più complicato invece disegnare una Spline partendo dai punti per cui la curva deve passare. In questo caso è sufficiente utilizzare l'algoritmo di interpolazione Catmull-Rom, così definito:
Let c(i) be the points you wish to interpolate through. Let b(i) be the Bezier control points. Then:
B(0) = c(i)
B(1) = (c(i+1)-c(i-1))/6 + c(i)
B(2) = (c(i)-c(i+2))/6 + c(i+1)
B(3) = c(i+1)
Note that the very first or very last interpolation point won’t actually be interpolated. You can work around this by creating a dummy interpolation point at the beginning.
Nel caso in cui siate interessati una implementazione pratica del codice non esitate a contattarmi (eventualmente scriverò un articoletto per UGI).