Le funzioni base di Bézier vengono usate come pesi. Le funzioni base delle B-spline saranno usate nello stesso modo; comunque, esse sono molto più complesse. Ci sono due interessanti proprietà che non riguardano le funzioni base di Bézier, cioè: (1) il dominio viene suddiviso dai knots, e (2) le funzioni base non sono non-nulle sull'intero intervallo. Infatti, ogni funzione base di una B-spline è non-nulla su alcuni sottointervalli adiacenti e, di conseguenza, le funzioni base di una B-spline sono completamente "locali".
Sia U un insieme di m + 1 numeri non-decrescenti, u0 <= u1 <= u2 <= u3 <= ... <= um. Gli ui sono chiamati knots, l'insieme U si chiama vettore dei knots, e l'intervallo semi-aperto [ui, ui+1) si chiama i-esimo knot span. Notiamo che poiché alcuni degli ui possono essere uguali, alcuni knot spans possono non esistere. Se un knot ui appare k volte (cioè, ui = ui+1 = ... = ui+k-1), dove k > 1, ui è un knot multiplo di molteplicità k, scritto come ui(k). Altrimenti, se ui appare solo una volta, è un knot semplice. Se tra i knots c'è sempre la stessa distanza (cioè, ui+1 - ui è una costante per 0 <= i <= m - 1), il vettore dei knots (o la sequenza dei knots) è detto uniforme; altrimenti, esso è non-uniforme.
I knots possono essere considerati come punti di divisione che suddividono l'intervallo [u0, um] in knot spans. Si suppone che tutte le funzioni base di una B-spline abbiano il loro dominio su [u0, um]. In questa nota, usiamo spesso u0 = 0 e um = 1 così che il dominio è l'intervallo chiuso [0,1].
Per definire le funzioni base di una B-spline, abbiamo bisogno di un parametro in più, che è il grado di queste funzioni base, p. L' i-esima funzione base di una B-spline di grado p, scritta come Ni,p(u), è definita ricorsivamente come segue:
Questa di solito è conosciuta come la formula di ricorsione di Cox-de Boor. Questa definizione sembra complicata; ma, non è difficile da capire. Se il grado è zero (cioè, p = 0), queste funzioni base sono tutte step functions e questo è quello che dice la prima espressione. Cioè, la funzione base Ni,0(u) vale 1 se u è nell'i-esimo knot span [ui, ui+1). Per esempio, se abbiamo quattro knots u0 = 0, u1 = 1, u2 = 2 e u3 = 3, i knot spans 0, 1 e 2 sono [0,1), [1,2), [2,3) e le funzioni base di grado 0 sono N0,0(u) = 1 su [0,1) e 0 altrove, N1,0(u) = 1 su [1,2) e 0 altrove, e N2,0(u) = 1 su [2,3) e 0 altrove. Ciò è mostrato di seguito:
Per capire il modo di calcolare Ni,p(u) per p > 0, usiamo lo schema di calcolo triangolare. Tutti i knot spans sono elencati sulla prima colonna a sinistra e tutte le funzioni base di grado zero sulla seconda. Questo schema è mostrato nel seguente diagramma:
Per calcolare Ni,1(u), sono richieste Ni,0(u) e Ni+1,0(u). Quindi, possiamo calcolare N0,1(u), N1,1(u), N2,1(u), N3,1(u) e così via. Tutte le Ni,1(u) sono scritte sulla terza colonna. Una volta che tutte le Ni,1(u) sono state calcolate, possiamo calcolare le Ni,2(u) e metterle sulla quarta colonna. Questo processo continua finché tutte le Ni,p(u) richieste sono state calcolate.
Sopra, abbiamo ottenuto N0,0(u), N1,0(u) e N2,0(u) per il vettore dei knots U = { 0, 1, 2, 3 }. Calcoliamo N0,1(u) e N1,1(u). Per calcolare N0,1(u), poiché i = 0 e p = 1, dalla definizione abbiamo
Poiché u0 = 0, u1 = 1 e u2 = 2, la formula sopra diventa
Poiché N0,0(u) è non-nulla su [0,1) e N1,0(u) è non-nulla su [1,2), se u è in [0,1) (rispettivamente, [1,2) ), solo N0,0(u) (rispettivamente, N1,0(u) ) fornisce un contributo in N0,1(u). Perciò, se u è in [0,1), N0,1(u) vale uN0,0(u) = u, e se u è in [1,2), N0,1(u) vale (2 - u)N1,0(u) = (2 - u). Con un calcolo simile si ottiene N1,1(u) = u - 1 se u è in [1,2), e N1,1(u) = 3 - u se u è in [2,3). Nella seguente figura, le linee nera e rossa sono rispettivamente N0,1(u) e N1,1(u). Notiamo che N0,1(u) (rispettivamente, N1,1(u)) è non-nulla su [0,1) e [1,2) (rispettivamente, [1,2) e [2,3)).
Una volta disponibili N0,1(u) e N1,1(u), possiamo calcolare N0,2(u). La definizione ci porta alla seguente formula:
Inserendo i valori dei knots si ottiene
Notiamo che N0,1(u) è non-nulla su [0,1) e [1,2) e N1,1(u) è non-nulla su [1,2) e [2,3). Quindi, dobbiamo considerare tre casi:
Riassumendo, abbiamo le seguenti osservazioni:
la funzione Base Ni,p(u) è non-nulla su [ui, ui+p+1). Oppure, equivalentemente, Ni,p(u) è non-nulla su p+1 knot spans [ui, ui+1), [ui+1, ui+2), ..., [ui+p, ui+p+1).
Osserviamo questo diagramma. Per trovare tutte le funzioni base di grado 3 che sono non-nulle su [u4, u5), disegniamo due frecce e tutte le funzioni sui lati verticali sono ciò che vogliamo. In questo caso, esse sono N1,3(u), N2,3(u), N3,3(u), e N4,3(u). Questo è mostrato con il triangolo arancione. Il triangolo blu (rispettivamente, rosso) mostra le funzioni base di grado 3 che sono non-nulle su [u3, u4) (rispettivamente, [u2, u3) ). Notiamo che ci sono solo tre polinomi di base di grado tre che sono non-nulli su [u2, u3).
Riassumendo, abbiamo osservato la seguente proprietà.
Su ogni knot span [ui, ui+1), al più p+1 funzioni base di grado p sono non-nulle: Ni-p,p(u), Ni-p+1,p(u), Ni-p+2,p(u), ..., Ni-1,p(u) e Ni,p(u).