Motivazioni

Supponiamo di voler disegnare il profilo di un vaso. La prima figura sotto a sinistra è una curva di Bézier di grado 11; ma, è difficile modellare il "collo" del vaso in corrispondenza del segmento P4P5. Naturalmente, possiamo aggiungere ulteriori punti di controllo vicino a questo segmento per incrementare il peso di quella regione. Comunque, così facendo incrementeremo il grado della curva. In molti casi, non vale la pena usare un polinomio di grado così alto.

Come discusso in una pagina precedente riguardo le derivate di una curva di Bézier, possiamo unire due curve di Bézier. Finché l'ultima parte della prima curva e la prima parte della seconda hanno la stessa direzione, possiamo ottenere almeno la G1 continuità poiché i vettori tangenti hanno la stessa direzione ma possono avere lunghezza diversa (cioè, se anche la lunghezza è la stessa, otteniamo la C1 continuità). La figura sopra al centro usa questa idea. Essa è composta da tre segmenti di una curva di Bézier di grado 3 uniti nei punti marcati con rettangoli gialli. Questo ci mostra che con più segmenti di una curva di Bézier di grado basso che soddisfano la condizione della G1 continuità, possiamo ancora disegnare forme complesse. Ma, mantenere la condizione di G1 continuità può essere noioso e sgradito.

E' possibile usare segmenti di una curva di grado ancora più basso mantenendo la G1 continuità?  Le curve B-spline sono generalizzazioni delle curve di Bézier e vengono usate per rispondere a questa domanda. La figura sopra a destra è una curva B-spline di grado 3 definita da 8 punti di controllo. Infatti, ci sono cinque segmenti di una curva di Bézier di grado 3 uniti per formare la curva B-spline definita dai punti di controllo. Questi punti suddividono la curva B-spline in segmenti di una curva di Bézier. Possiamo muovere dei punti di controllo per modificare la forma della curva proprio come facciamo con le curve di Bézier. Possiamo anche modificare la suddivisione della curva. Quindi, le curve B-spline hanno un grado di libertà più alto per disegnare una curva.

Suddividere la curva direttamente è difficile. Invece, noi suddividiamo il dominio della curva. Così, se il dominio di una curva è [0,1], questo intervallo chiuso viene suddiviso da punti chiamati knots. Siano questi knots 0 <= u0 <= u1 <= ... <= um <= 1. Allora, i punti di C(ui) suddividono la curva come mostrato nella seguente figura e, di conseguenza, modificando la suddivisione di [0,1] cambia la forma della curva.

IRiassumendo, per disegnare una curva B-spline, abbiamo bisogno di un insieme di punti di controllo, un insieme di knots e un insieme di coefficienti, uno per ogni punto di controllo, così che tutti i segmenti di curva siano uniti soddisfacendo sicuramente la condizione di continuità. Il calcolo dei coefficienti è forse il passo più complesso perché essi devono garantire la continuità. Fortunatamente, questo calcolo di solito non è necessario in questo corso. Infatti noi possiamo solo aver bisogno di conoscere le loro caratteristiche per ragionare sulle curve B-spline.