il y a une infinité de splines qui passent par a et b
* tu veux probablement une courbe de bézier, qui a la propriété d'être contenue dans le polygone défini par a, b, c, d.
algo de de casteljau : pour une courbe de n points, tu as n-1 segments. tu réduis pour tout t de 0 à 1 cet ensemble de segments jusqu'à n'avoir plus qu'un seul point.
tes trois segments sont
[a, b]
[b, c]
[c, d]
et donnent les points
A1 = (a*(1-t), b*t)
B1 = (b*(1-t), c*t)
C1 = (c*(1-t), d*t)
ces trois points te donnent deux segments :
[A1, B1]
[B1, C1]
ces deux segments te donnent deux points :
A2 = [A1*(1-t), B1*t]
B2 = [B1*(1-t), C1*t]
tu n'as plus qu'un segment :
[A2, B2]
qui te donne le point de la courbe :
A3 = (A2*(1-t), B2*t)
l'avantage est qu'avec ça, tu peux tracer une courbe avec n'importe quel nombre de points de contrôle.
tu peux réduire le topo au-dessus pour avoir une belle équation en fonction des quatres points.
//
si tu veux que les courbes passent par tous les points, c'est catmull-rom, si tu veux contrôler d'autres paramètres, regarde du côté des kochanek bartels.