You are on page 1of 22

1

Capitolo 5

Curve Spline polinomiali di ordine m a nodi multipli


Le spline polinomiali a nodi semplici sono funzioni che presentano la massima regolarit per essere
polinomiali a tratti. Infatti, se si aggiunge un altro ordine di raccordo per le derivate si otterrebbe
semplicemente un polinomio di ordine m.
Questa massima regolarit di classe
2 m
C a volte troppo elevata per permettere alla funzione
spline di seguire bene landamento di dati che presentino un comportamento in parte molto
regolare, in parte meno regolare. E importante aggiungere gradi di libert alla spline, riducendo
alloccasione le condizioni di raccordo sulle derivate. Questo pu essere fatto introducendo il
concetto di nodi multipli.
5.1 Spline polinomiali a nodi multipli
Definizione:
Sia [a,b] un intervallo chiuso e limitato, sia una partizione di [a,b] cos definita:
= {a=x
0
< x
1
< < x
k
<x
k+1
=b}
che induce una partizione di [a,b] in k+1 sottointervalli:
I
i
= [x
i
, x
i+1
) per i=0,k-1.
I
k
= [x
k
, x
k+1
)
Sia m un intero positivo e sia M = (m
1
,m
2
, , m
k
) un vettore di interi positivi tali che 1 m
i
m
k i ,... 1 = . Si definisce funzione spline polinomiale di ordine m con nodi
k
x x ,...,
1
di molteplicit
k
m m ,...,
1
, una funzione s(x) che in ciascun sotto intervallo I
i
i=0,,k coincide con un polinomio
s
i
(x) di ordine m, e che nei nodi k i x
i
,..., 1 , = soddisfi le condizioni di continuit:


2

1 ,..., 0 ,..., 1
) ( ) (
1
= = =

i
j
i i
j
j
i i
j
m m j k i
dx
x s d
dx
x s d

La differenza con le spline polinomiali a nodi semplici nasce dal fatto che possibile variare il tipo
di raccordo in un nodo x
i.
a seconda del valore di m
i.
In base a questo valore si pu decidere sino a quale derivata effettuare il raccordo. Maggiore sar la
molteplicit, minori saranno le condizioni di raccordo sui nodi.
Nota: Se m
i
=1 i=1,,k riotteniamo la spline a nodi semplici. Se m
i
=m non abbiamo alcun
raccordo nel nodo i-esimo.
Esempi: Sia m=4.
Se, per un certo i, k i 1 , m
i
=1 il nodo x
i
semplice

) ( ) (
) ( ) (
) ( ) (
1
'
1
'
' '
1
' '
i i i i
i i i i
i i i i
x s x s
x s x s
x s x s

=
=
=

Se m
i
=2 il nodo x
i
doppio

) ( ) (
) ( ) (
1
'
1
'
i i i i
i i i i
x s x s
x s x s

=
=

Se m
i
=3 il nodo x
i
triplo

) ( ) (
1 i i i i
x s x s

=

Man mano che aumenta la molteplicit dei nodi, si riducono le condizioni di raccordo nei nodi.
Teorema:
Lo spazio delle spline polinomiali di ordine m a nodi multipli con nodi
k
x x ,...,
1
di molteplicit
k
m m ,...,
1
, che verr indicato con S
m
(,M), ha dimensioni pari a m + K, dove

=
=
k
i
i
m K
1
.


3
Dimostrazione intuitiva: Per ciascuno dei k+1 sottointervalli il polinomio di ordine m ha m gradi
di libert, quindi si hanno (k+1)m gradi di libert; a queste si devono sottrarre le m-m
i
condizioni di
raccordo imposte su ogni nodo k i x
i
,..., 1 , = . Si ha, quindi:


= = =
+ = + + = + + = +
k
i
i
k
i
k
i
i
K m K mk m mk m m m mk m m k m
0 0 0
) ( ) 1 (
Nel caso in cui m
i
= 1 i = 0,,k, quindi

=
k
i 0
m
i
= k, si ricade nelle spline polinomiali a nodi
semplici con dimensione m + k.

5.2 Funzioni B-spline normalizzate
In analogia con il caso di nodi semplici, vediamo ora come ogni spline polinomiale a nodi multipli,
) , ( ) ( M S x s
m
, pu essere espressa come:

+
=
=
K m
j
m j j
x N c x s
1
,
) ( ) (
dove { }
m K m m m
N N N
, , 2 , 1
,..., ,
+
la base delle B-spline normalizzate che genera lo spazio ) , ( M S
m
.
Per poter costruire tutte le B-spline normalizzate che costituiscono la base per ) , ( M S
m

necessario costruire una partizione nodale estesa. Nel caso di nodi multipli la nuova partizione
nodale viene costruita come indicato nel seguente paragrafo.

Partizione nodale estesa
Si costruisce la partizione nodale estesa * = { }
K m
i i
t
+
=
2
1
con

=
=
k
i
i
m K
1
nel seguente modo:
a)

K m
t t t t
+

2 3 2 1
...

i nuovi nodi sono semplici, ma possono coincidere.


b)
b t a t
K m m

+ + 1




4
c)
K m m m m
t t t t
+ + + +
...
3 2 1
sono scelti in modo tale che siano coincidenti con :
) ... ( ... ) ... ( ) ... (
2 2 2 1 1 1 k k k
x x x x x x x x x < <

m
1
volte m
2
volte m
k
volte
d)
) con tutti coincidere (possono 2 2
) con tutti coincidere (possono 1 1
b K m ,..., K m i b t
a ,...,m- i a t
i
i
+ + + =
=

I punti k i x
i
,..., 1 , = vengono anche chiamati break points.
Una volta costruita la partizione nodale estesa, linsieme delle B-spline normalizzate viene definito
mediante la seguente formula ricorrente:
per h=2,,m

=
+ +
+ +
+

+
altrimenti 0
) ( ) (
) (
1 , 1
1
1 ,
1
,
h i i h i
i h i
h i
h i
i h i
i
h i
t t x N
t t
x t
x N
t t
t x
x N

con condizione iniziale

<
=
+
altrimenti 0
1
) (
1
1 ,
i i
i
t x t
x N


5.3 Propriet delle funzioni B-spline con nodi multipli normalizzate:
1) Formano una base per lo spazio S
m
(,M).
Ciascuna s(x) S
m
(,M) pu essere espressa come
=


,
[, ]


5
Per le propriet di supporto compatto delle B-spline avremo che se [

]
=


,

2) Sono non negative sul loro supporto, N
i,m
(x) 0 ] , [
m i i
t t x
+

3) Costituiscono una partizione dellunit, cio

+
=
=
K m
i
m i
x N
1
,
1 ) (
Per le propriet 2) e 3), la spline s(x) =

+
=
K m
i 1
c
i
N
i,m
(x) una combinazione lineare convessa dei
coefficienti c
i
e quindi

{ } { }
i
K m i
i
K m i
c x s c
+ = + =

,..., 1 ,..., 1
max ) ( min

s(x) sar compreso tra il minimo e massimo coefficiente c
i
per i=1,, m+K.
In pi c il controllo locale. Per la propriet di supporto compatto delle b-spline, la valutazione del
polinomio in un punto x [t
l
,t
l+1
) si riduce a
s(x) =

+ =
l
m l i 1
c
i
N
i,m
(x)
in quanto le uniche B-spline diverse da 0 su punto x [t
l
,t
l+1
)sono
N
l-m+1,m
(x),, N
l,m
(x) ,
si ha quindi che

{ } { }
i
l m l i
i
l m l i
c x s c
,..., 1 ,..., 1
max ) ( min
+ = + =


Propriet di variation diminishing.
Sia s(x) S
m
(
*
,M) e sia rappresentata nella base delle B-spline normalizzate, cio:


6
=


,
[, ]
Allora vale che il numero di variazioni di segno della funzione spline minore o uguale al
numero di variazioni di segno dei coefficienti.
5.4 Curve B-spline.
Dati i vertici di controllo P
i
, i=1,,N, per definire una curva B-spline necessario:
Fissare lordine delle B-spline normalizzate
Fissare lintervallo [a,b]
Fissare il numero e la molteplicit dei break points e di conseguenza la partizione nodale estesa
La dimensione dello spazio m+K deve essere uguale al numero dei vertici di controllo N, cio
m+K=N
La curva B-spline si esprime come:
=


,
[, ]
Utilizzare la base delle B-spline normalizzate pi complesso, ma pi flessibile rispetto alluso dei
polinomi di Bernstein. Infatti mentre per definire una curva di Bezier, fissati i vertici di controllo
rimane fissato il grado dei polinomi di base di Bernestein, nel caso delle curve spline ci sono
maggiori gradi di libert.
5.5 Valutazione di una funzione spline
Abbiamo visto che assegnata la partizione nodale estesa *, una ) , ( ) (
*
M S x s
m
pu esprimersi
come
s(x) =

+
=
K m
i 1
c
i
N
i,m
(x).



7
Se x [t
l
,t
l+1
), la (1) diventa
s(x) =

+ =
l
m l i 1
c
i
N
i,m
(x). (2)
Esistono due possibili algoritmi per valutare s(x) in un punto.
Il primo realizza la formula (2), cio calcola le funzioni base diverso da zero sul punto x [t
l
,t
l+1
):

m l m l m m l m m l
l l l
l l
l
N N N N
N N N
N N
N
, , 1 , 2 , 1
3 , 3 , 1 3 , 2
2 , 2 , 1
1 ,
+ +



Un buon algoritmo per valutare per tutte le funzioni base B-spline normalizzate di ordine m diverse
da zero in un punto ha complessit:

moltiplicazioni e divisioni
2 1 addizioni e sottrazioni.

Il secondo algoritmo, proposto da De-Boor, lanalogo per le funzioni B-spline, dellalgoritmo di
De Casteljau per i polinomi in forma di Bernstein. Si ottiene sostituendo di volta in volta alle B-
spline di ordine m la combinazione di due B-spline di ordine inferiore, come stabilito dalle formule
ricorrenti.
Pi precisamente, data

+ =
=
l
m l i
m i i
x N c x s
1
,
) ( ) (


8
per x [t
l
,t
l+1
) e sostituendo alla N
i,m
(x) la sua definizione ricorrente in termini di funzione base di
ordine inferiore si ottiene:
|
|

\
|

=
+
+ +
+

+ + =

) ( ) ( ) (
1 , 1
1
1 ,
1 1
x N
t t
x t
x N
t t
t x
c x s
m i
i m i
m i
m i
i m i
i
l
m l i
i
=
=
|
|

\
|

+ + =

) (
1 ,
1 1
x N
t t
t x
c
m i
i m i
i
l
m l i
i
+ =
|
|

\
|

+
+ +
+
+ =

) (
1 , 1
1 1
x N
t t
x t
c
m i
i m i
m i
l
m l i
i

Se x [t
l
,t
l+1
), le funzioni base di ordine m-1 diverse da 0 su di esso sono quelle che hanno indice
che va da l-m+2 fino ad l . Allora la prima sommatoria la possiamo estendere a partire da
i=l-m+2 fino ad l. Inoltre, estendiamo anche la seconda sommatoria da i=l-m+2 fino ad l ,
sostituendo i-1 alle occorrenze di i e tenendo conto che per i = l+1 la funzioni base,
N
l+1,m-1
(x) nulla su x [t
l
,t
l+1
).
Risulta quindi
=
|
|

\
|

+ + =

) (
1 ,
1 2
x N
t t
t x
c
m i
i m i
i
l
m l i
i
+ =
|
|

\
|

+
+
+ =

) (
1 ,
1
1
2
1
x N
t t
x t
c
m i
i m i
m i
l
m l i
i
.
Raccogliendo:
= ) (
) ( ) (
1 ,
1
1 1
2
x N
t t
x t c t x c
m i
i m i
m i i i i
l
m l i

+
+
+ =
|
|

\
|

. (3)
Si pone
] 1 [
i
c
=
|
|

\
|

+
+
+
i m i
m i i i i
t t
x t c t x c
1
1
] 0 [
1
] 0 [
) ( ) (
.
La (3) diventa quindi
s(x) =

+ =
l
m l i 2
] 1 [
i
c N
i,m-1
(x).
La spline ottenuta di ordine m-1. Ripetendo il procedimento m volte si ottiene il valore della
spline in un punto in termini di funzione base di ordine 1 e cio in termini di un solo coefficiente.
s(x) =

=
l
l i
] 1 [ m
i
c N
i,1
(x) =
] 1 [ m
l
c N
l,1
(x).


9
Essendo N
l,1
(x) = 1, s(x) =
] 1 [ m
l
c
.
Si ottenuto che il valore della spline calcolato in x quello di una spline di ordine uno per un
opportuno coefficiente. Lo schema che si ottiene il seguente:

] 0 [
1 + m l
c

] 0 [
2 + m l
c

] 0 [
l
c


] 1 [
2 + m l
c

] 1 [
l
c



] 1 [ m
l
c

E in formule:
i j m i
j
i j m i
j
i i j
i
t t
x c x t x c t x
c

+
=
+

) ( ) ( ) ( ) (
] 1 [
1
] 1 [
] [
per j=1,,m e i=l-m+j+1,,l con
] 0 [
i
c =
i
c , i=l-m+1,,l
La complessit computazionale di 3m(m-1) moltiplicazioni e divisioni e di 2m(m-1) addizioni e
sottrazioni.
Come nellalgoritmo di de Casteljau, riusciamo a valutare la curva in un punto mediante
combinazione dei coefficienti.
Diversamente dallalgoritmo per le curve di Bzier, che lavorano su tutti i coefficienti, il
corrispettivo nelle spline lavora solo con i coefficienti definiti nel supporto: questo grazie alle
propriet delle funzioni base, che sono a supporto compatto, e permettono cos di superare il grande
problema delle curve di Bzier, le quali non consentivano modifiche a livello locale.

5.6 Algoritmo inserimento di un nuovo nodo in una partizione nodale gi esistente (Knot
Insertion) :
Considerate due spline cubiche ) (
1
x s con 3 nodi semplici e relativa alla partizione nodale estesa

= 0,0,0,0,
1
4
,
2
4
,
3
4
, 1,1,1,1


10


e laltra ) (
2
x s con 2 nodi semplici e relativa alla partizione nodale estesa

= 0,0,0,0,
1
4
,
3
4
, 1,1,1,1


Non possibile sommarle direttamente anche se sono entrambe cubiche.
Ricorriamo ad un trucco: esprimiamo la ) (
2
x s come una spline appartenente ad uno spazio che
abbia gli stessi nodi dello spazio a cui appartiene ) (
1
x s . Inseriamo un nodo nella rappresentazione
di ) (
2
x s in posizione

, cos i due spazi hanno lo stesso grado di libert e quindi possibile


sommarle.
Una volta inserito il nuovo nodo,

,cambiano sia le funzioni base di ) (


2
x s che diventano uguali a
quelle di ) (
1
x s , sia i coefficienti. Vediamo adesso come possiamo procedere in generale.
Consideriamo una partizione nodale estesa,


si vuole conoscere il tipo di relazione che intercorre tra essa e quella che si ottiene aggiungendovi
il nodo [ )
1
^
,
+

l l
t t t .
Partendo dalla partizione nodale { }
K m
i i
t
+
=
=
2
1
*
, si aggiunga il nodo [ )
1
^
,
+

l l
t t t , si ottiene cos la
nuova partizione nodale
*



definita nel seguente modo


11

+
+ =

2
1

1
l i t
l i t
l i t
t
i
i
i

Il nuovo spazio sar indicato con )

(
*
M S
m

Nessuno vieta di aggiungere un nodo in corrispondenza di un altro nodo gi esistente. E possibile
inserire il nodo dove si vuole. Se vogliamo aumentare la molteplicit di un nodo, inseriamo il nodo
in corrispondenza di quel nodo.
Si vuole studiare in che relazione stanno le funzioni base , 1 ,..., 1 ,

,
+ + = K m i N
m i
del nuovo
spazio )

(
*
M S
m


con le funzioni base , ,..., 1 ,
,
K m i N
m i
+ = dello spazio S
m
(,M),
Le funzioni base non cambiano tutte, proprio per la caratteristica di localizzazione delle funzioni
base.
Tra
m i
N
,

ed
m i
N
,
esiste la seguente relazione

l i m l x N
l i x N
t t
t t
x N
t t
t t
m l i x N
x N
m i
m i
i m i
m i
m i
i m i
i
m i
m i
+


=
+
+
+ + +
+ +
+
1 ) (

1 ) (



) (



) (

) (
, 1
, 1
1 1
1
,
,
,
(4)
Sia

+
=
=
K m
i
m i i
x N c x s
1
,
) ( ) ( (5)
si vogliono individuare i coefficienti
i
c tali che

+ +
=
=
1
1
,
) (

) (
K m
i
m i i
x N c x s





12
Se [ )
1
,

l l
t t t , utilizzando il risultato precedente, avremo

+
+ +
+
=

1
2 ) 1 (
1

1
1
l i c
l i m l c c
m l i c
c
i
i i i i
i
i

(6)

con
i m i
i
i
t t
t t

=
+
e
i m i
m i
i
t t
t t


) 1 (

=
+
+


I
i
sono tutti numeri compresi tra 0 ed 1, quindi i
i
c sono una combinazione convessa dei c
i
e il
loro calcolo risulta stabile.
Lalgoritmo di knot insertion per spline lanalogo dellalgoritmo di degree elevation per curve di
Bezier. La differenza la localizzazione, in quanto solo i coefficienti da i=l-m+2 fino ad l sono
modificati per linserimento di un nodo nellintervallo [t
l
,t
l+1
]
Questo algoritmo ha molteplici possibilit di utilizzo.
Lalgoritmo di inserimento di un nodo pu essere applicato ripetutamente per ottenere la
valutazione di una funzione spline in un punto. Infatti se un nodo ha molteplicit m-1, solo una
funzione base diversa da zero in quel nodo e vale 1, quindi il coefficiente unico d anche il valore
della spline in quel punto. Si parte inserendo un nodo t

nel punto dove si vuole valutare la spline


ottenendo:

+ +
=
=
1
1
,
) (

) (
K m
i
m i i
x N c x s
Poi si procede inserendo un secondo nodo in e si ottiene

+ +
=
=
2
1
] 2 [
,
] 2 [
) (

) (
K m
i
m i i
x N c x s
e si va avanti fino ad m-1 inserimenti



13

+ +
=

=
) 1 (
1
] 1 [
,
] 1 [
) (

) (
m K m
i
m
m i
m
i
x N c x s
(7)
Tenendo conto del fatto che man mano che aumenta la molteplicit di un nodo diminuisce il numero
di funzioni base diverse da zero in quel punto, la (7) si riduce a:

] 1 [ ] 1 [
,
] 1 [

) (

= =
m
l
m
m l
m
l
c N c x s

La valutazione di una spline in un punto mediante linserimento di un nodo coincidente con di
molteplicit m-1 coincide con lalgoritmo di valutazione di De Boor.
Questo algoritmo pu essere utilizzato anche per la suddivisione di funzione spline in due funzioni,
una definita su [a, ] laltra su [, b], cio:

=
] , [ ) (
] , [ ) (
) (
2
1
b x x x s
x a x x s
x s

Lunica differenza che deve essere un nodo di molteplicit m.
Inserendo un nodo nella partizione nodale, vengono modificate le funzioni base, quindi viene
modificata la base dello spazio vettoriale. La curva per non cambia. Modificando la partizione
nodale con linserimento di fatto la modellazione non cambia.
Linserimento dei nodi la procedura base dellalgoritmo geometrico di De Boor per il disegno di
una curva spline. Vogliamo inserire un nodo tante volte quanto questo ci permette di avere un punto
sulla curva direttamente. Il numero di volte pari al grado delle funzioni base. Quindi, se quel
punto che esiste gi nella partizione nodale lo inseriamo 3 volte e le funzioni base sono di grado 3,
allora modificando i vertici di controllo che dipendono solo da quella parte di curva, otteniamo il
punto sulla curva.







14
Algoritmo di Knot-Insertion (caso Curve B-spline)
Sia =
=
N
i
m i i
t N P t C
1
,
) ( ) ( ,
|
|

\
|

i
i
i
y
x
P , N=m+K, la curva spline di ordine m definita sulla partizione
nodale estesa { }
K m
i i
t
+
=
=
2
1
*
.
Inseriamo un nodo
[ )
1
,

l l
t t t
, si ottiene una nuova partizione nodale estesa
{ }
1 2
1
*

+ +
=
=
K m
i i
t
. Con
questa nuova partizione nodale estesa la curva diventer:

+ +
=
=
1
1
,
) (

) (
K m
i
m i i
t N P t C

Inserendo un nodo nella partizione nodale estesa, vengono modificate le funzioni base dello spazio
vettoriale. La curva non cambia. Modificando la partizione nodale con linserimento di fatto non
cambia la modellazione, ma cambia il poligono di controllo.
I coefficienti
i
P

rappresentano i vertici del nuovo poligono di controllo. La modifica solo locale, il


poligono cambia solo in parte. Quali sono i punti di controllo che cambiano? Influir il
sottointervallo della partizione nodale in cui viene inserito il nuovo nodo:

+
+ +
+
=

1
2 ) 1 (
1

1
1
l i P
l i m l P P
m l i P
P
i
i i i i
i
i
(8)
i m i
i
i
t t
t t

=
+

.
I
i
dipendono dal nodo che vogliamo inserire e dipendono dallampiezza della partizione nodale,
non dal sotto intervallino [t
l
,t
l+1
).
Esempio 1:
Sia m=4, K=4, N=8 e
2
5

= t ,

= 0,0,0,0,1,2,3,4,5,5,5,5


15

Inseriamo t

in [t
6,
t
7
).
Tenendo conto della (8) si ha che i vertici del poligono di controllo in seguito allinserimento del
nodo t

in [t
6,
t
7
) diventano:
3 3 2 2 1 1

P P P P P P = = =

8 9 7 8 6 7

P P P P P P = = =
3 4 4 4 4
) 1 (

P P P + =
6
5


4 8
4
4
=

=
t t
t t

6
1
) 1 (
6
=
4 5 5 5 5
) 1 (

P P P + =
2
1


5 9
4
5
=

=
t t
t t

2
1
) 1 (
5
=

5 6 6 6 6
) 1 (

P P P + =
6
1


6 10
6
6
=

=
t t
t t

6
5
) 1 (
6
=

P
7
P
1
P
2
P
3
P
4
P
5
P
6
P
8
P
7
P
3


16

Esempio 2:
Data una partizione nodale estesa ed un insieme di vertici di controllo

= 0,0,0,0,
1
4
,
1
3
,
2
3
, 1,1,1,1
diamo molteplicit 4 a ciascuno dei nodi interni
=
*

0,0,0,0,
1
4
,
1
4
,
1
4
,
1
4
,
1
3
,
1
3
,
1
3
,
1
3
,
2
3
,
2
3
,
2
3
,
2
3
1,1,1,1

Il risultato la suddivisione della curva in 4 curve di Bezier; la curva non cambia, cambia solo la
poligonale.
Adesso possibile applicare lalgoritmo di De Casteljeau per valutare ogni pezzo della curva-
Lalgoritmo di de Casteljau + pi semplice dellalgoritmo di De Boor, perch ogni
i
uguale al
valore del parametro per cui si valuta.
Inserendo i nodi nella modellazione si pu:
Valutare la curva
Spezzare la curca; la curva intera viene spezzata in 4 pezzi corrispondenti a 4 curve di Bezier.
Il poligono di controllo si avvicina di pi alla curva.

4
P


5
P


6
P


3
P


2
P


1
P


7
P


8
P


9
P




17
5.7 Derivata prima di una Curva B-spline
Se t [t
l
,t
l+1
) e

+ =
=
l
m l i
m i i
t N P t C
1
,
) ( ) ( allora la derivata prima della curva B-spline si esprime
nella seguente forma:

+ =
=
l
m l i
m i i
t N P t C
1
'
,
) ( ) ( '

dove

) (
1
) (
1
) (
1 , 1
1
1 ,
1
'
,
t N
t t
m
t N
t t
m
t N
m i
i m i
m i
i m i
m i +
+ +

=

=
|
|

\
|

= =

+ = + +
+
+

+ =
l
m l i i m i
m i
i m i
m i
i
l
m l i
m i i
t t
N
t t
N
P m t N P t C
1 1
1 , 1
1
1 ,
1
'
,
) 1 ( ) ( ) ( '
=

=

+ = + +
+
+ = +

l
m l i i m i
m i
i
l
m l i i m i
m i
i
t t
N
P m
t t
N
P m
1 1
1 , 1
1 1
1 ,
) 1 ( ) 1 (

=

=

+ = + +
+

= + +
+
+
l
m l i i m i
m i
i
l
m l i i m i
m i
i
t t
N
P m
t t
N
P m
1 1
1 , 1
1
1
1 , 1
1
) 1 ( ) 1 (

nella prima sommatoria quando i=l-m 0
1 , 1
=
+ m m l
N e quando i=l nella seconda sommatoria

0
1 , 1
=
+ m l
N (in quanto per t [t
l
,t
l+1
) le uniche B-spline diverse da zero su t sono
) ( ),..., (
1 ,. 1 , 2
t N t N
m l m m l +
,
=

=


+ = + +
+

+ = + +
+
+
1
1 1
1 , 1
1
1 1
1 , 1
1
) 1 ( ) 1 (
l
m l i i m i
m i
i
l
m l i i m i
m i
i
t t
N
P m
t t
N
P m


1
1
1
1
1 , 1
) )( 1 (
) ( ) ( '
+ +
+

+ =
+


=

i m i
i i
l
m l i
m i
t t
P P m
t N t C

La derivata prima di una curva spline non altro che una curva spline combinazione lineare di
funzioni base di ordine m-1, i cui vertici di controllo sono dati dalla combinazione lineare dei
vecchi vertici di controllo,
1
1
) 1 (
+ +
+

=
i m i
i i
i
t t
P P
m Q


18
5.8 Propriet delle curve spline
Le propriet delle curve B-spline seguono dalle propriet delle funzioni spline che ne danno una
rappresentazione parametrica.
Il numero dei punti di controllo N, lordine della spline m e la somma delle molteplicit di ogni
break-point sono legati dalla relazione
N=m+K
e ci permette di poter lavorare con curve di ordine basso, pur potendo lavorare con un numero
elevato di punti di controllo.
In una curva spline si possono individuare parti delle parti, dette spans, che corrispondono a
ciascun intervallo internodale. Infatti, poich si ha che per ) [
1 , +

l l
t t t

+ =
=
l
m l i
m i i
t N P t C
1
,
) ( ) (
solo i punti di controllo P
i
, i=l-m+1,,l influenzano la curva nel valore del parametro t .

Esempio: m=4 k=2, K=2

=
=
6
1
4 ,
) ( ) (
i
i i
t N P t C





Indichiamo con S
1
la span relativa allintervallo internodale ) [
5 , 4
t t , S
2
la span relativa allintervallo
internodale ) [
6 , 5
t t , S
3
la span relativa allintervallo internodale ) [
7 , 6
t t .

Se ) [
5 , 4
t t t ) ( ) ( ) ( ) ( ) (
4 , 4 4 4 , 3 3 4 , 2 2 4 , 1 1
t N P t N P t N P t N P t C + + + =
Se ) [
6 , 5
t t t ) ( ) ( ) ( ) ( ) (
4 , 5 5 4 , 4 4 4 , 3 3 4 , 2 2
t N P t N P t N P t N P t C + + + =
Se ) [
6 , 5
t t t ) ( ) ( ) ( ) ( ) (
4 , 6 6 4 , 5 5 4 , 4 4 4 , 3 3
t N P t N P t N P t N P t C + + + =
t
1
t
2
t
3
t
4



t
5


t
6


t
7
t
8
t
9
t
10



S
1


S
2


S
3




19
Ci significa che la span S
1
dipende solo dai punti di controllo P
1
, P
2
, P
3
, P
4
, la span S
2
dipende solo
dai punti di controllo P
2
, P
3
, P
4
, P
5
, la span S
3
dipende solo dai punti di controllo P
3
, P
4
, P
5
, P
6
.

Questo il grosso vantaggio delle curve B-spline, per cui si pu parlare di controllo locale.
Viceversa se si muove un punto di controllo P
k
, la modifica della curva riguarder solo le spans che
corrispondono agli intervalli nodali su cui vive
m k
N
,
, ] , [
m k k
t t
+
cio solo relativamente al supporto
della k-esima funzione base.



Le curve di Bezier sono un caso speciale delle curve B-spline.
Se i punti di controllo P
i
sono N e si considera una spline di ordine m=N, poich deve valere la
condizione N=m+K, significa che non si possono avere nodi interni e quindi K=0 . Ne segue
quindi che la partizione nodale estesa data da N nodi coincidenti con il primo estremo
dellintervallo, N nodi coincidenti con il secondo estremo dellintervallo e quindi la curva B-spline
di ordine m coincide con la curva di Bezier di grado m-1.

Se i nodi aggiuntivi sono coincidenti con gli estremi dellintervallo, la curva B-spline interpola
il primo e lultimo punto di controllo.





20
Invarianza per trasformazioni affini
La curva B-spline invariante per trasformazioni affini. Ci implica che se bisogna traslare, ruotare
o deformare una curva, sufficiente applicare la trasformazione solo ai punti di controllo e poi
costruire la curva sui punti trasformati. La curva quindi subir la trasformazione desiderata come se
la trasformazione fosse applicata a tutti i punti della curva.

Propriet forte del guscio convesso (strong convex hull property)
Se [

, allora
= P


,

contenuta nellinviluppo convesso dei punti i controllo

, = +1, , .

Da questa propriet, segue che se questi m punti di controllo sono allineati, allora la curva coincide
con una retta;



21
se m-1 di questi punti di controllo sono coincidenti allora la curva passa per il punto multiplo


Propriet di variation diminishing
Il numero di intersezioni di una qualsiasi retta con il poligono di controllo maggiore del numero di
intersezioni della stessa retta con curva B-spline.



5.9 Il vantaggio di utilizzare Curve B-spline

Le curve B-spline richiedono pi informazioni (cio, il grado della curva, il vettore dei break-points
e delle rispettive molteplicit) e una teoria pi complessa rispetto alle curve di Bzier. Ma, i
maggiori vantaggi compensano questo inconveniente. Primo, una curva B-spline pu essere una
curva di Bzier. Secondo, le curve B-spline soddisfano tutte le propriet importanti che hanno le
curve di Bzier. Terzo, le curve B-spline forniscono pi flessibilit di controllo rispetto a ci che
possono fare le curve di Bzier. Per esempio, possiamo utilizzare curve di grado pi basso e


22
mantenere ancora un gran numero di punti di controllo. Possiamo cambiare la posizione di un punto
di controllo senza cambiare globalmente la forma dell'intera curva (propriet di modifica locale).
Poich le curve B-spline soddisfano la propriet strong convex hull, esse hanno un maggiore
controllo della forma. Inoltre, ci sono altre tecniche per disegnare ed editare la forma di una curva
cambiando i break-points.
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. Inoltre non godono
dellinvarianza per trasformazioni proiettive. Quindi richiesta, una generalizzazione delle
B-spline, NURBS.

You might also like