Le curve B-spline condividono molte importanti proprietà con le curve di Bézier, perchè le prime sono una generalizzazione di quest'ultime. Inoltre, le curve B-spline hanno più proprietà desiderate rispetto alle curve di Bézier. La lista sotto mostra alcune delle più importanti proprietà delle curve B-spline.
Di seguito assumeremo che una curva B-spline C(u) di grado p sia definita da n + 1 punti di controllo e da un vettore dei knot U = { u0, u1, ...., um } con i primi p+1 e gli ultimi p+1 knots "stretti" (cioè, u0 = u1 = ... = up e um-p = um-p+1 = ... = um).
Quste proprietà ci consentono di disegnare forme complesse con polinomi di grado più basso. Per esempio, la figura in basso a destra mostra una curva di Bézier con lo stesso insieme di punti di controllo. Non è ancora in grado di seguire il poligono di controllo con esattezza anche se il suo grado è 10!
In generale, più basso è il grado, più la curva B-spline si avvicina al suo poligono di controllo. Le seguenti figure utilizzano tutte lo stesso poligono di controllo e i knots sono stretti e uniformemente distribuiti. La prima figura ha grado 7, quella centrale ha grado 5 e la figura a destra ha grado 3. Quindi, poiché il grado diminuisce, la curva B-spline generata si avvicina al suo poligono di controllo.
Le due curve B-spline sopra hanno 11 punti di controllo (cioè, n = 10), grado 3 (cioè, p=3) e 15 knots (m = 14) con i primi quattro e gli ultimi quattro knots stretti. Quindi, il numero di knot spans è uguale al numero di segmenti di curva. Il vettore dei knot è
u0 | u1 | u2 | u3 | u4 | u5 | u6 | u7 | u8 | u9 | u10 | u11 | u12 | u13 | u14 |
0 | 0 | 0 | 0 | 0.12 | 0.25 | 0.37 | 0.5 | 0.62 | 0.75 | 0.87 | 1 | 1 | 1 | 1 |
La figura a sinistra ha u nello knot span [u4,u5) = [0.12,0.25) e il corrispondente punto (per esempio C(u)) nel secondo segmento di curva. Quindi, ci sono p+1 = 4 funzioni base non-nulle su questo knot span (per esempio, N4,3(u),N3,3(u), N2,3(u) e N1,3(u) ) e i corrispondenti punti di controllo sono P4, P3, P2 e P1. L'area ombreggiata è il dominio convesso definito da questi quattro punti. E' chiaro che C(u) giace in questo dominio convesso.
La curva B-spline nella figura a destra è definita nello stesso modo. Comunque, u è nell'intervallo [u9, u10) = [0.75,0.87) e le funzioni base non-nulle sono N9,3(u), N8,3(u), N7,3(u) e N6,3(u). I corrispondenti punti di controllo sono P9, P8, P7 e P6.
Di conseguenza, poichè u si muove da 0 a 1 e attraversa un knot, una funzione base diventa zero e una nuova funzione base non-nulla diventa effettiva. Come risultato, un punto di controllo il cui coefficiente diventa zero lascierà la definizione dell'attuale convex hull e sarà sostituito da un nuovo punto di controllo il cui coefficiente diventa non-nullo.
Le curve B-spline sopra sono definite con gli stessi parametri come nel precedente esempio di dominio convesso. Intendiamo muovere il punto di controllo P2. Il coefficiente di questo punto di controllo è N2,3(u) e l'intervallo sul quale questo coefficiente è non-nullo è [u2, u2+3+1) = [u2, u6) = [0,0.37). Poichè u2 = u3 = 0, solo tre segmenti che corrispondono a [u3, u4) (il dominio del primo segmento di curva), [u4, u5) (il dominio del secondo segmento di curva) e [u5, u6) (il dominio del terzo segmento di curva) saranno influenzati. La figura a destra mostra il risultato dello spostamento di P2 all'angolo destro più basso. Come potete vedere, solo il primo, il secondo e il terzo segmento di curva cambiano la loro forma mentre tutti i rimanenti segmenti di curva rimangono nella loro posizione originaria senza alcun cambiamento.
Questo schema di modifica locale è molto importante nel disegno di
curve, perchè possiamo modificare una curva localmente senza cambiare la
forma in modo globale. Questo sarà elaborato nella pagina sullo
spostamento dei punti di controllo.
Inoltre, se è richiesta una curva dalla forma armoniosa, si possono
inserire più knots (e quindi più punti di controllo) così che l'area
influenzata potrebbe essere ristretta ad una regione molto limitata.
Tratteremo dell'inserimento dei knot più in avanti.
La curva B-spline sopra ha 18 punti di controllo (cioè, n = 17), grado 4, e il seguente vettore dei knot stretti
da u0 a u4 | u5 | u6 e u7 | u8 | da u9 a u11 | u12 | da u13 a u16 | u17 | da u18 a u22 |
0 | 0.125 | 0.25 | 0.375 | 0.5 | 0.625 | 0.75 | 0.875 | 1 |
Così, u6 è un knot doppio, u9 è un knot triplo e u13 è un knot quadruplo. Di conseguenza, C(u) è C4 continua in qualsiasi punto che non sia un knot, C3 è continua in tutti i knots semplici, C2 è continua in u6, C1 è continua in u9, C0 è continua in u13.
Tutti i punti sulla curva che corrispondono ai knots sono segnati con piccoli triangoli. Quelli che corrispondono a knots multipli sono inoltre segnati con cerchi e anche la loro molteplicità. E' molto difficile visualizzare la differenza tra C4, C 3 e persino la C2 continuità. Per il caso C1, i corrispondenti punti giacciono su un segmento, mentre il caso C0 forza la curva a passare attraverso un punto di controllo. Ritorneremo su questo argomento più in avanti quando discuteremo dellamodifica dei knots.
Nella figura sopra, la linea blu interseca sia il poligono di controllo che la curva B-spline 6 volte,mentre la linea gialla interseca il poligono di controllo e la curva B-spline 5 volte. Comunque, la linea arancione interseca il poligono di controllo 6 volte e la curva 4 volte.
Comunque, va ricordato che le curve B-spline sono ancora curve polinomiali e le curve polinomiali non possono rappresentare molte utili curve semplici come cerchi e le elissi. Quindi è richiesta, una generalizzazione delle B-spline, NURBS. Discuteremo le NURBS più avanti.