Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
1
Interpolare cu funcţii spline
Curbele pot fi reprezentate în plan prin: _________________ ________________
• ecuaţii explicite: De exemplu y=√(r2-x2) şi y=-√(r2-x2)
reprezintă un cerc cu centrul în origine, de rază r • ecuaţii implicite: x2+y2=r2 • ecuaţii parametrice: x(t)=r cos t şi y(t)=r sin t
Reprezentarea prin ecuaţii explicite, de forma y=f(x) şi nici ecuaţiile implicite nu asigură reprezentarea curbelor având mai multe valori într-un punct (nu sunt funcţii). f(p)=f(x,y)=0 nu tratează corect tangentele verticale la curbă. Formaa parametrică:
• este mult mai flexibilă • permite reprezentarea de curbe care nu sunt funcţii (au mai multe valori într-un
punct) • este independentă de coordonate
Specificarea unei curbe se face prin: • puncte de control – mulţime de puncte care influienţează forma curbei • noduri – puncte de control care se află pe curbă
Un spline este o curbă parametrică definită prin puncte de control. • Un spline este o funcţie S:[a, b)→ R, definită local pe mai multe intervale
prin Pi:[ti, ti+1) → R, cu a=t0 < t1 <...< tk-1 =b
S(t)=P0(t), t0 ≤ t < t1 S(t)=P1(t), t1 ≤ t < t2 S(t)=Pk-2(t), tk-2 ≤ t < tk-1
• Funcţiile pi(t) sunt de regulă polinoame de grad 3 • Nodurile ti se aleg deobicei echidistante, definind un spline uniform • Dacă în vecinătatea nodurilor ti, S∈Cri, atunci spline-ul are netezimea Cri.
(adică spline-urile Pi-1 şi Pi au aceleaşi derivate de ordin 0 până la ri) • Splineul de grad 0 este splineul treaptă, cel de ordin 1 este spline liniar şi
coincide cu poligonul punctelor de control. • Un spline utilizat – spline-ul cubic natural are gradul 3 şi continuitatea C2. În
plus, la capete: S”(a)= S”(b) = 0. • Splineurile de grad n utilizate în analiza numerică au continuitatea S(t)∈Cn-1
[a,b] • Splineurile utilizate în Adobe şi PostScript au continuitatea S(t) ∈ C1[a,b] • Pentru asigurarea continuităţii C2, funcţiile spline trebuie să aibă cel puţin gradul 3 • Funcţiile spline pot fi: • funcţii spline de interpolare – care trec prin toate punctele de control • funcţii spline de aproximare – care nu trec prin toate punctele de control •
( )( )⎩
⎨⎧
==
=tyy
txx)t(p
2
Funcţii spline de interpolare în clasă C1.
Vom alege polinoame de interpolare de grad mic, valabile pe subintervale x0 < x1 < … < xn f(x0),f(x1),…,f(xn)
şi vom considera funcţii de interpolare liniare, locale pe subintervalele [x0,x1],[x1,x2],…,[xn-1,xn] pi(x)=aix+bi, i=0:n-1
în care cei 2n parametri se determină din condiţiile de interpolare: pi(xi)=f(xi), i=0:n-1 pn-1(xn)=f(xn)
şi a condiţiilor de racordare (continuitate în punctele interioare): pi(xi+1)=pi+1(xi+1), i=0:n-2
Interpolarea liniară prezintă dezavantajul discontinuităţii derivatelor în punctele interioare.
Prin alegerea unor funcţii de interpolare de gradul 3 se poate realiza o interpolare Hermite, care presupune şi fixarea valorii derivatelor pe suportul interpolării: f’(x0),f’(x1),…,f’(xn)
O funcţie spline cubică se exprimă sub forma:
( ) ( )1n:0i,
xxxfxf
ai1i
i1ii −=
−−
=+
+
( ) ( )i1i
1iii1ii xx
xfxxfxb
−⋅−⋅
=+
++
3
Si(x)=ai+bi(x-xi)+ci(x-xi)2+di(x-xi)3
sau parametric
Si(t)=ai+bihit+cihi2t2+dihi3t3, t∈[0,1]
în care s-a notat hi=xi+1-xi şi s-a efectuat schimbarea de variabilă: Baza Bernstein : cu t ∈[0,1] reduce volumul de calcule necesar determinării coeficienţilor.
Avem 2n+2 condiţii de interpolare de tip Hermite: si(xi)=f(xi) s’i(xi)=f’(xi), i=0:n
şi 2n-2 condiţii de racordare (continuitate şi derivabilitate în punctele interioare): si(xi+1)=si+1(xi+1) s’i(xi+1)=s’i+1(xi+1), i=0:n-2
Eroarea interpolării pentru funcţiile spline în clasă C1 este:
Funcţii spline de interpolare în clasă C2.
Considerăm numai n+1 condiţii de interpolare de tip Lagrange: si(xi)=f(xi), i=0:n-1 sn-1(xn)=f(xn)
rezultă: ai=f(xi), i=0:n-1
i
i
i1i
i
hxx
xxxx
t−
=−
−=
+
( ) ( ) ( ) 3223 t,t1t3,t1t3,t1 −−−
( ) ( ) ( ) ( ) 3i
2i
2i
3ii tdt1tc3t1tb3t1ats ′+−′+−′+−′=
( )ii xfa =′ ( ) ( )iiii xf
3h
xfb ′+=′
( )1ii xfd +=′ ( ) ( )1ii
1ii xf3h
xfc ++ ′−=′
( ) ( ) ( ) ( ) ( ) ( ) 31i
21i1i
2iii
3ii tyt1tyhy3t1tyhy3t1yts +++ +−′−+−′++−=
( ) ( ) ( )( )
( ) ( )ξf!2n2
xxxxxE 2n2
2n
20 +⋅
+−−
=K
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )24
ξfht1tξf
!4xxxx
xE4422
42
12
0 −=
−−=
( ) ( ) ( ) ( ) ( )384hM
24ξfh2/12/1
xE4
44422
=≤
( ) nn3
1n1n2
1n1n1n1n1n axfhdhchba ≡=+++ −−−−−−−
( ) n:0i,xfa ii ==
4
Dispunem de mai multe grade de libertate pentru condiţiile de racordare: continuitatea valorilor şi a derivatelor de ordinul 1 şi 2 în punctele interioare pe care o prelungim cu i=0:n-1, introducând notaţia s-au obţinut astfel 4n-2 relaţii, mai putem impune 2 condiţii suplimentare care definesc funcţiile spline naturale pentru funcţii spline tensionate.
( ) ( )1i1i1ii xsxs +++ =
3ii
2iiiii1i hdhchbaa +++=+
2n:0i −=
( ) ( ) ( )2iiiiii xxd3xxc2bxs −+−+=′
( ) ( )1i1i1ii xsxs +++ ′=′ 2n:0i −=
2iiiii1i hd3hc2bb ++=+
( ) ( )iiii xxd6c2xs −+=′′
( ) ( )1i1i1ii xsxs +++ ′′=′′
iii1i hd3cc +=+
1n1n1nn hd3cc −−− +≡
( ) ( ) 0xS,0xS n1n00 =′′=′′ −
( ) ( ) ( ) ( )nn1n000 xfxS,xfxS ′=′′=′ −
( ) 1n:0i,xfa ii −==
1n:0i,h3
ccd
i
i1ii −=
−= +
1n:1i,h3
c2ch
aab 1i
i1i
1i
1iii −=
++
−= −
−
−
−
( ) ( ) ( )1i
1ii
i
i1i1iiii1i1i1i h
aa3h
aa3chchh2ch
−
−++−−−
−⋅−
−⋅=⋅+⋅+⋅+⋅
( ) ( ) 0c0xxd6c2xS 0000000 =⇒=−+=′′
( ) 0c0c2hd6c2xS nn1n1n1nn1n =⇒=≡+=′′ −−−−
( )
( )⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
⋅
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
+
+
−−
−
−−−−
n
1n
1
0
n
1n
1
0
1n
1n1n2n2n
1100
0
g
g
g
g
c
c
c
c
h00
hhh2h
0hhh2h
000h
KKOK
K
K
31n1n
21n1n1n1n1nn hdhchbaa −−−−−−− +++≡
21n1n1n1n1nn hd3hc2bb −−−−− ++≡
5
Funcţii spline de aproximare Hermite Spline-ul Hermite este un spline cubic, deci dispune de 4 grade de libertate:
• p(t)= at3+bt2+ct +d • p’(t)=3at2+2bt+c
Vom impune ca restricţii valorile la capete şi valorile derivatelor la capete
( ) ( )
( ) ( )
⎥⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢⎢
⎣
⎡
−−
−
−−
−
=
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
−
−−
−
−−
0h
aa3h
aa3
haa3
haa3
0
g
g
g
g
2n
2n1n
1n
1nn
0
01
1
12
n
1n
1
0
KK
( ) ( ) ( ) ( )002
000000000 xfbxxd3xxc2bxS ′==−+−+=′
( ) ( )0100
0
010 xfcc2
3h
haa
b ′=+−−
=
( )0
0101000 h
aaxf3chch2
−−′=+
( ) ( )nn2
1n1n1n1n1nn1n xfbhd3hc2bxS ′==++=′ −−−−−−
( ) ( )
( ) ,chchcc23
hh
aa
hcchc2bxfb
n1n1n1nn1n1n
1n
1nn
1n1nn1n1n1nnn
−−−−−
−
−
−−−−−
+++−−
=−++=′=
( ) ( )1nn1n
nn1n1n1n aah3
xf3ch2ch −−
−−− −−′=+
( )
( )⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
=
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
⋅
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
+
+
−−
−−
−−−−
n
1n
1
0
n
1n
1
0
1n1n
1n1n2n2n
1100
00
g
g
g
g
c
c
c
c
h2h0
hhh2h
0hhh2h
00hh2
KKOK
K
K
( ) ( )( ) ( )
( ) ( )
( ) ( )⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢
⎣
⎡
−−′
−−
−
−−
−
′−−
=
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
−
−
−
−−
−
−−
1n
1nnn
2n
2n1n
1n
1nn
0
01
1
12
00
01
n
1n
1
0
haa3
xf3
haa3
haa3
haa3
haa3
xf3h
aa3
g
g
g
g
KK
6
Definim vectorul de control: p(0)=d a=2p1-2p2+p1’+p2’ p(1)=a+b+c+d b=-3p1+3p2-2p1’-p2’ p’(0)=c ⇒ c=p1’ p’(1)=3a+2b d=p1 În graficul funcţiei componentele vectorului de control apar ponderate cu funcţiile de îmbinare (blending functions):
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
=
'2
'1
2
1
p
p
p
p
q
( ) [ ]⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
⋅=+++=
d
c
b
a
1tttdctbtattp 2323
( ) [ ] qMt
p
p
p
p
0001
0100
1233
1122
1ttttp HT
'2
'1
2
1
23 ⋅⋅=
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
⋅
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡−−−
−
⋅=
( ) [ ]⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
⋅−+−+−+−=
'2
'1
2
1
23232323
p
p
p
p
tttt2tt3t21t3t2tp
7
Spline cardinale. Sunt spline Hermite, care nu folosesc derivate, care sunt înlocuite prin diferenţele: Ti=a(Pi+1-Pi-1)
Spline Catmull-Rom.
Sunt spline cardinale cu a=0.5 Ti=0.5(Pi+1-Pi-1) Spline-ul Catmull-Rom are proprietăţile:
• trece prin toate punctele de control (spline de interpolare) • este C1 continuu
Spline Kochanek – Bartels Sunt spline Hermite, folosite de 3d-Studio Max cu control mai bun asupra animaţiei. Calculul tangentelor se face cu relaţiile:
( ) [ ]⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
⋅
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−−−−
−⋅⋅=
4
3
2
1
32
p
p
p
p
1331
1452
0101
0020
ttt121
tq
( ) [ ]⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
⋅−++−+−−+−⋅=
4
3
2
1
23232323
p
p
p
p
tttt4t32t5t3tt2t21
tq
( )( )( ) ( ) ( )( )( ) ( )i1i1iii PP2
b1c1t1PP
2b1c1t1
TS −−+−
+−+−−
= +−
( )( )( ) ( ) ( )( )( ) ( )i1i1iii PP2
b1c1t1PP
2b1c1t1
TD −−−−
+−++−
= +−
8
Funcţii spline Bézier
Dându-se două puncte P0 şi P1, orice punct de pe segmentul P0P1 reprezintă o curbă Bézier liniară,definită prin:
B1(P0,P1,t)=(1-t)P0+tP1, t∈[0,1]
Curba Bézier pătratică, determinată de punctele P0şi P2 ca puncte de interpolare şi P1 ca punct de aproximare se poate calcula, pentru fiecare t prin 3 interpolări liniare: Pa=B1(P0,P1,t) Pb=B1(P1,P2,t) B2(P0,P1,P2,t)=B1(Pa,Pb,t)=B1(B1(P0,P1,t), B1(P1,P2,t),t) B2(P0,P1,P2,t)=B1[(1-t)P0+tP1, (1-t)P1+tP2] B2(P0,P1,P2,t)=(1-t)[(1-t)P0+tP1]+t[(1-t)P1+tP2] B2(P0,P1,P2,t)=(1-t)2P0+2t(1-t)P1+t2P2, t∈[0,1]
Fonturile TrueType folosesc curbe Bézier pătratice. Patru puncte în plan sau spaţiu definesc o curbă Bézier cubică. Aceasta pleacă din P0, ajunge în P3 şi nu trece prin P1 şi P2. Acestea dau informaţii numai asupra direcţiei
Curba Bézier cubică are forma parametrică:
B(t)= P0(1-t)3+3P1t(1-t)2+3P2t2(1-t)+ P3t3, t∈[0,1]
Postscript şi GIMP folosesc pentru reprezentarea literelor curbe Bézier cubice.
Polinoame Bernstein.
Sunt generate din dezvoltarea polinomului [t+(1-t)]n
Proprietăţile polinoamelor Bernstein:
• Nenegativitatea • Simetria • Maxim unic t=i/n în [0,1]
• Formula de recurenţă
( ) ( ) n:0i,t1ti
ntB inin
i =−⎟⎟⎠
⎞⎜⎜⎝
⎛= −
]1,0(t,0Bni ∈>
( ) ( )t1BtB nin
ni −= −
( ) ( ) ( ) ( ) n:0i,tBttBt1tB 1n1i
1ni
ni =⋅+⋅−= −
−−
9
• Derivare
Curba Bézier de grad n este definită pentru n+1 puncte: P0, P1,...,Pn prin: se numesc polinoame Bernstein.
• Punctele Pi se numesc puncte de control ale curbei Bézier, iar poligonul P0P1...Pn se numeşte poligon Bézier. Poligonul Bézier conţine în interiorul lui curba Bézier
Proprietăţi ale curbelor Bézier: • proprietatea punctelor de capăt – curba începe în P0 şi se termină în Pn • curba Bézier este lineară numai dacă punctele de control sunt coliniare • curba Bézier este tangentă segmentelor P0P1 şi Pn-1Pn. • o curbă Bézier este conţinută complet în înfăşurătoarea convexă a punctelor de
control. • O curbă Bézier poate fi separată în alte două curbe Bézier. • Transformările afine (translaţia şi rotaţia) aplicată punctelor de control are acelaşi
efect cu aplicarea transformării afine asupra curbei
Curbele Bézier modelează curbele netede în grafica pe calculator. Cele mai folosite sunt curbele Bézier pătratice şi cubice. Acestea sunt folosite ca splineuri Bézier pentru a aproxima alte funcţii
Algoritmul De Casteljau.
Determină un punct de pe curba Bézier. Un mod direct îl constituie aplicarea relaţiei pentru t şi punctele de control date
( ) ( ) ( ) [ ]1,0t,tP...tt1P1
nt1Ptt1P
i
n)t(B n
n1n
1n
0iin
n
0ii ∈++−⎟⎟
⎠
⎞⎜⎜⎝
⎛+−=−⎟⎟
⎠
⎞⎜⎜⎝
⎛= −−
=∑
( ) ( ) [ ]1,0t,tbPtBn
0in,ii ∈= ∑
=
( ) ( ) n:0i,t1ti
ntb ini
n,i =−⎟⎟⎠
⎞⎜⎜⎝
⎛= −
( ) ( )∑=
=n
0in,ii tbβtB
( ) ( ) ( )( )( )⎪
⎩
⎪⎨
⎧
=<<−
=−=
−−
−−−
−
nitnB
ni0tBtBn
0inB
tBdtd
1n1n
1ni
1n1i
1ni
ni
10
unde bin este baza polinoamelor Bernstein. Metoda nu este stabilă numeric, datorită erorilor în evaluarea polinoamelor Bernstein. Pentru calcul se utilizează relaţia de recurenţă cu B(t0)=β0(n) Fie P0i,i=0:n poligonul punctelor de control P0i şi P0i+1 două puncte succesive şi P1i un punct care împarte segmentul P0iP0i+1 în raportul t/(1-t): P1i=P0i+t(P0i+1-P0i)=(1-t)P0i+tP0i+1
• Se formează în acest fel poligonul P1i, i=0:n-1. • Se aplică algoritmul noului poligon acelaşi algoritm obţinându-se poligonul
P2i,i=0:n-2. Repetând procesul de n ori se obţine un singur punct Pn0. Acest punct este punctul cerut
Algoritmul De Casteljau.
Calculul poate fi exprimat recursiv prin relaţia: Pij=(1-t)Pi-1j+tPi-1j+1, i=1 : n, j=0:n-i
şi implementat ineficient prin:
( ) n:0i,ββ i0i ==( ) ( ) ( ) ( ) n:1j,jn:0i,tβt1ββ 0
1j1i0
1ji
ji =−=+−= −
+−
11
function b=Castrec(P, u, i, j) if i==1 b=P(1,j); else b=(1-u)*Castrec(P,u,i-1,j)+u*Castrec(P,u,i-1,j+1);
Ineficienţa provine din apelurile recursive repetate. Acestea pot fi evitate urmărind schema de calcul pentru puncte de control succesive.
Spline-urile Bézier folosesc în locul derivatelor două puncte suplimentare de control. Punctele de control suplimentare determină derivatele, şi asigură un control mai eficient decât cel prin derivate
Derivatele la capete (în p1 şi p4)se exprimă se exprimă folosind celelalte două puncte de control prin: p1’=3(p2-p1) p4’=3(p4-p3)
Putem face trecerea între vectorii de control Hermite şi Bézier:
12
321321BezierHermite G
4
3
2
1
G
2
1
2
1
p
p
p
p
3300
0033
1000
0001
p
p
p
p
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
⋅
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−−
=
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
∇∇
3214444 34444 21BezierHermite G
4
3
2
1
M
p
p
p
p
3300
0033
1000
0001
0001
0100
1233
1122
d
c
b
a
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
⋅
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−−
⋅
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡−−−
−
=
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
321444 3444 21BezierBezier G
4
3
2
1
M
p
p
p
p
0001
0033
0363
1331
d
c
b
a
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
⋅
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−−
−−
=
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
Funcţiile de îmbinare pentru spline-ul Bézier sunt polinoamele Bernstein B3i, i=0:3
( )
( )( )( )
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
⋅
⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢
⎣
⎡
−−
−
=
4
3
2
1T
3
2
2
3
p
p
p
p
t
t1t3
t1t3
t1
tp
Polinoamele Bernstein au proprietăţile: • sunt pozitive în [0,1] • au suma egală cu 1 • curba este o combinaţie convexă a punctelor de control
Splineurile Bezier se obţin prin joncţiunea de curbe Bezier.
13
Continuitate C0: P4 = Q1 Continuitate C1 P’4 = Q’1 P4 – P3 = Q2 – Q1 Continuitate C2 P”4 = Q”1 P2-2P3+P4 = Q1-2Q2+Q3 Din cele 3 condiţii rezultă: Q1 = P4 Q2 = 2P4 – P3 Q3 = P2 – 4P3 + 4P4 Cu alte cuvinte pentru cel de-al doilea spline avem un singur grad de libertate.
Spline B Curbele Bezier nu asigură un control local efectiv, în sensul că modificarea punctelor de control afectează în mod global forma curbei Calculul curbelor Bezier este ineficient. Splineurile B asigură un control local mai bun decât splineurile Bezier. Splineurile B sunt de forma:
( ) [ ]
321444 3444 21
44 344 21
splineBsplineB G
4
3
2
1
B
T
32
p
p
p
p
0141
0303
0363
1331
61
ttt1tp
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
⋅
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−−
−−
⋅⋅=
( ) ( )[ ]⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
⋅+++−+−−⋅=
4
3
2
1
33233
p
p
p
p
ttt3t33t4t631t61
tp
Proprietăţile splineurilor B:
1. control local mai bun – fiecare punct de control are efect local 2. continuitate – curba de grad n este Cn-1 continuă 3. aproximare – un spline B nu trece prin nici un punct de control 4. curba este conţinută în poligonul P1P2...Pn+1
14
Se pot defini funcţii spline B de ordin superior: ( ) ( ) ( )tN
tttt
tNtt
tttN 1k,1i
1iki
ki1k,i
i1ki
iik −+
++
+−
−+
⋅−−
+⋅−
−=
( )⎩⎨⎧ <<
= +
contrarcazin0
ttt1tN 1ii
1i
NURBS (Spline B Raţionale NeUniforme).
Se definesc prin relaţiile:
( )( )
( )∑=
+
+= n
0j1d,jj
1d,kkk
tNw
tNwtR
În care: Nk,d – este baza funcţiilor B spline wk – sunt ponderi (Au parametric de formă) Proprietăţi:
1. interpolează la capete 2. asigură reprezentări exacte curbelor canonice (cerc, elipsă) 3. sunt invariante la proiecţia perspectivă