Sei sulla pagina 1di 14

Curve Spline

(curve dinterpolazione)

Scelta dei valori dei nodi


Il metodo pi semplice porre
U0 =0, U1 =1 ovvero Ui =i => Ui - Ui-1 = 1
P
i+1
U=i+1
P
i

U=i

Svantaggio: non detto che i nodi sulla curva


siano uniformemente spaziati => possono
innescarsi oscillazioni non volute

Il metodo ideale assegnare al nodo la


lunghezza dellarco di curva:
U0 =0, U1 = U0 + L1 ovvero Ui = Ui-1 + Li
con L distanza lungo la curva fra Pi e Pi+1
L

P
i

P
i+1
i

Ui+1= Ui

+ Li

Ui

Svantaggio: la lunghezza della curva dovrebbe


essere calcolata precedentemente alla
assegnazione dei valori nodi => non
possibile

Un metodo pratico consiste nellassegnare al


nodo la distanza fra i punti:
U0 =0, U1 = U0 + d1 ovvero Ui = Ui-1 + di
con di distanza fra Pi e Pi+1
P
i+1
d
i
P
i
Ui

Ui+1= Ui

+ di

Problemi delle curve spline


lo spostamento di un punto da interpolare
modifica lintera curva

P3

P4

P2
P3
P1

P5

Interpolare punti non equidistanziati origina


oscillazioni non volute

Sia le curve di Bzier che le Spline


non permettono modifiche locali della
curva; inoltre, per le curve di Bzier, il
grado della curva legato al numero
dei punti di controllo

tali limiti sono superati dalle curve


B-spline

Curve B-spline
(curve di approssimazione con possibilit
di interpolazione)

Principio fondamentale
Le curve B-spline utilizzano delle
funzioni di miscelamento che hanno
influenza locale e dipendono solo da
alcuni punti di controllo circostanti

Espressione delle B-spline


p(u) =

n
i= 0

N i , k ( u ) Pi

dove
Pi =n+1 punti dati o punti di controllo
Ni,k = funzioni di miscelamento polinomiali
k = ordine del polinomio = grado polinomio+1

N.B. il grado del polinomio indipendente dal


n dei punti di controllo

Funzioni di miscelamento
Definizione ricorsiva

1 se U i u U i +1
N i ,1 ( u ) =
0 altrimenti

N i,k =

(u U i )
N i , k 1 ( u) +
(U i + k 1 U i )

( U i + k u)
N i + 1, k 1 ( u)
(U i + k U i + 1 )

dove
i = i-esimo tratto della curva
U = [U0, U1,..., Um] vettore dei nodi

Convenzione
Si assegna ai nodi Ui un valore intero
(eventualmente ripetuto) tale che:
Ui - Ui-1 = 1 (oppure 0)
es:
U = [0,1,2,3,4,5] vettore dei nodi

occorre tenere conto delle particolarit


agli estremi:
Ui = 0
Ui = i-k+1
Ui = n-k+2

se i < k
se k i
se i > n

si assume, inoltre, per questa situazione


contingente, 0/0 = 1

La curva B-spline,definita come sopra,


approssima tutti i punti noti e passa per gli
estremi
con opportune modifiche si pu anche avere
una curva che non passa per gli estremi

Esempi di funzioni di miscelamento


curva a sei punti di controllo => n=5
k=1 => 0 u 6
U = [0,1,2,3,4,5,6]

N 0,1
u

1 se 0 u 1
N (u) =
0 altrimenti
.........
1 se 5 u 6
N (u) =
0 altrimenti
0 ,1

5,1

k=2 => 0

N4,1
5,1

5 => U = [0,0,1,2,3,4,5,5]

1 se u = 0
0 altrimenti
. .. . . . . . .
1 se 4 u 5
N 5 ,1 ( u ) =
0 altrimenti
N 0 ,1 ( u ) =

N 0 , 2 ( u ) = ( 1 u ) N 1,1 ( u )
N 1 , 2 ( u ) = uN 1 ,1 ( u ) + ( 2 u ) N 2 ,1 ( u )
..........
N 5 , 2 ( u ) = ( u 4 ) N 5 ,1 ( u )
1

N0,2
u

N5,2

N1, 2
0

In generale
1

Ni,k(u)

i
Ni,k(u) = 1 se u = Ui
Ni,k(u) -> 0 allontanadosi da Ui

Ogni punto di controllo influenza solo K


segmenti di curva e, viceversa, ogni
segmento di una curva B-Spline e
influenzato da K punti di controllo

Propriet delle funzioni di


miscelamento
vi una funzione corrispondente ad
ogni punto di controllo
le funzioni sono positive (ovvero
attraggono la curva)
la curva diversa da zero al piu in k
intervalli consecutivi

per ogni valore u nel dominio, la somma


delle funzioni di miscelamento 1
il numero dei nodi uguale al numero
dei punti di controllo + lordine
i nodi sono dati in sequenza non
decrescente

Vantaggi delle curve B-spline


Il grado della curva indipendente dal
numero dei punti di controllo

si pu usare un elevato numero di punti


di controllo senza che sinneschino
oscillazioni nella curva

Le funzioni di miscelamento sono diverse da


zero solo in un intervallo => si pu spostare un
punto di controllo senza modificare lintera
curva

aumentando la molteplicit di un nodo si attira


la curva verso quel nodo

[0,0,0,0,1,2,2,2,2]

[0,0,0,0,1,1,2,2,2,2]

Aumentando opportunamente la molteplicit di


un nodo => la curva pu passare per il
corrispondente punto di controllo

[0,0,0,0,1,1,1,2,2,2,2]

Le curve Spline, B-spline e Bzier


costituiscono i principali metodi di
modellazione di curve utilizzati nel CAD
Svantaggio: queste forme rappresentano
le forme quadratiche solo in modo
approssimato

Polinomi Razionali

Potrebbero piacerti anche