Deoarece
ρi (i + 1 − i) = ri+1 = ρi+1 (i + 1 − (i + 1)),
65
66 Capitolul 3. ELEMENTE DE GEOMETRIA COMPUTAŢIONALĂ A CURBELOR
rezultă că ρ este bine defnită. Evident, ρ este netedă pe porţiuni, adică
ρ este netedă, ∀i = 0, n − 1, dar ρ este doar continuă; ı̂n ti , ρ nu este,
(i,i+1)
ı̂n general, derivabilă.
Pentru a obţine ρ netedă (global) vom cere că ρ să fie funcţie vectorială
polinomială. Vom studia două tipuri de interpolare cu funcţii polinomiale:
interpolarea Lagrange şi interpolarea Hermite.
Vrem să determinăm o funcţie polinomială L(t) = (Lx (t), Ly (t), Lz (t)),
t ∈ [a, b], astfel ı̂ncât
L(ti ) = ri , i = 0, n,
sau, pe componente,
Lx (t) = a0 + a1 t + . . . + an tn ,
Li (tj ) = δij , i, j = 0, n,
unde δij sunt simbolii lui Kronecker, adică δij = 1 dacă i = j şi δij = 0 dacă
i ̸= j. Se obţine
n
Y t − tj
(3.2.3) Li (t) = .
t − tj
j=0 i
j̸=i
L(xi ) = yi , i = 0, n.
Qn x−xj
unde Li sunt polinoamele Larange de bază Li (xj ) = δij şi Li (x) = j=0,j̸=i xi −xj .
(3.3.6) a1 + a2 + a3 = r1 − r0 .
3.3. Curbe Ferguson şi interpolare Hermite 69
iar
ρ′ (1) = a1 + 2a2 + 3a3 = r′0 + 2a2 + 3a3 = r′1
de unde
Prin urmare
unde (
H0 (t) = 1 − 3t2 + 2t3 , H1 (t) = 3t2 − 2t3
Ü (t) = t − 2t2 + t3 ,
H HÜ (t) = −t2 + t3 .
0 1
Ü şi H
Polinoamele H0 , H1 , H Ü se numesc polinoamele Hermite de bază core-
0 1
spunzătoare lui t0 = 0 şi t1 = 1. Să observăm că polinamele Lagrange de
bază L0 şi L1 sunt date de
iar
(
H0 (t) = (1 − 2L′0 (0)t)L20 (t), H1 (t) = (1 − 2L′1 (1)(t − 1))L21 (t)
.
Ü (t) = tL2 (t),
H Ü (t) = (t − 1)L2 (t)
H
0 0 1 1
Ü (t)r ′ + H
Curba ρ(t) = H0 (t)r0 + H1 (t)r1 + H Ü (t)r ′ se numeşte curba Fer-
0 0 1 1
guson corespunzătoare configuraţiei (r0 , r1 , r0 , r′1 ).
′
70 Capitolul 3. ELEMENTE DE GEOMETRIA COMPUTAŢIONALĂ A CURBELOR
şi
r0
r1
R=
r′0
r′1
Ü şi H
Matricea C are pe coloane coeficienţii polinoamelor H0 , H1 , H Ü . Putem
0 1
scrie acum
ρ(t) = T CR.
(
Hi (tj ) = δij , Hi′ (tj ) = 0, i, j, = 0, n
Ü (t ) = 0,
H Ü ′ (t ) = δ ,
H k, l = 0, n.
k l k l kl
3.4. Racordarea a două curbe Ferguson 71
Ü este 2n + 1. Se obţine
Gradul polinoamelor Hi şi Hj
(
Hi (t) = {1 − 2L′i (ti )(t − ti )}L2i (t), i = 0, n
Ü (t) = (t − t )L2 (t),
H j = 0, n,
j j j
Avantajul folosirii interpolării Hermite este că se obţine un control mult mai
mare asupra curbei (sunt daţi şi vectorii viteză) dar dezavantajul este dat
gradul mare al polinoamelor Hermite implicate.
Un caz particular al interpolării Hermite este următorul: se dau n + 1
puncte ı̂n plan P0 (x0 , y0 ), P1 (x, y1 ), . . . , Pn (xn , yn ), x0 < x1 < . . . < xn , şi
n + 1 valori y0′ , y1′ , . . . , yn′ . Căutăm un polinom H(x) care să satisfacă
să fie de clasă C 2 . Este clar că ρ este de clasă C 2 dacă şi numai dacă
ρ1 (1) = ρ2 (0), ρ′1 (1) = ρ′2 (0) şi ρ′′1 (1) = ρ′′2 (0). Să vedem cum rescriem
72 Capitolul 3. ELEMENTE DE GEOMETRIA COMPUTAŢIONALĂ A CURBELOR
ρ(t) = (1 − 3t2 + 2t3 )r0 + (3t2 − 2t3 )r1 + (t − 2t2 + t3 )r′0 + (−t2 + t3 )r′1
de unde
ρ′ (t) = (−6t + 6t2 )r0 + (6t − 6t2 )r1 + (1 − 4 + 3t2 )r′0 + (−2t + 3t2 )r′1 ,
şi
Prin urmare
ρ′′1 (1) = 6r10 − 6r11 + 2r′10 + 4r′11 ,
ρ′′2 (0) = −6r20 + 6r21 − 4r′20 − 2r′21 = −6r11 + 6r21 − 4r′11 − 2r′21
şi deci obţinem că ρ este de clasă C 2 dacă şi numai dacă
(
r11 = r20 , r′11 = r′20
.
r′10 + 4r′11 + r′21 = 3(r21 − r10 )
Spre deosebire de curba Ferguson, apare o relaxare ı̂n ceea ce priveşte vectorii
viteză ı̂n extremităţi, ı̂n situaţa de faţă precizându-se doar direcţiile lor şi
nu vectorii propriu-zişi.
3.5. Curbe Bezier de grad 3 şi racordarea lor 73
P1 P2
P0
P3
de unde
′ ′
b (0) = 3(b1 − b0 ) şi b (1) = 3(b3 − b2 ).
Prin urmare curba Bezier definită de (3.5.2) ı̂ndeplineşte condiţiile (3.5.1).
Este uşor de văzut ca
Putem exprima (3.5.2) şi ı̂ntr-o formă mult mai restrânsă, cu ajutorul
matricelor. Avem
(3.5.14) b(u) = U M B,
unde U = (1 u u2 u3 ) este o matrice linie având ca elemente puterile
parametrului u, matricea
1 0 0 0
−3 3 0 0
M= ∈ M4×4 (R)
3 −6 3 0
−1 3 −3 1
se obţine din dezvoltarea polinoamelor Bernstein Bi3 (u) (coeficienţii se pun
pe coloană), iar B este matricea coloană
b0
b1
B= .
b2
b3
a × x = b ⇔ βa × b + γa × (a × b) = b
⇔ βa × b + γ{⟨a, b⟩a − ⟨a, a⟩b} = b
⇔ βa × b − γ∥a∥2 b = b
⇔ βa × b − (γ∥a∥2 + 1)b = 0
1
⇔ β = 0 şi γ = − .
∥a∥2
continuă şi, ı̂n plus, să avem continuitate pentru vectorii reperului Frent şi
pentru curbură. Aceste condiţii se scriu echivalent
8
b = b13
> 20
>
>
<
T2 (0) = T1 (1)
(3.6.16)
>B (0) = B (1)
> 2 1
>
:
k2 (0) = k1 (1).
Notăm că dacă ı̂n (3.6.3) cerem λ = 1 atunci avem racordare de clasă
C 1 , iar o racordare de clasă C 2 satisface automat condiţiile de mai sus (cu
λ = 1).
Avem relaţiile
( ′ ′
b1 (1) = 3(b13 − b12 ), b2 (0) = 3(b21 − b20 )
′′ ′′
b1 (1) = 6b11 − 12b12 + 6b13 , b2 (0) = 6b20 − 12b21 + 6b22
şi atunci
′ ′
b2 (0) = λb1 (1) ⇔ b21 − b20 = λ(b13 − b12 ),
adică
sau
1 λ
(3.6.19) b13 = b21 + b12 .
1+λ 1+λ
Prin urmare b13 aparţine segmentului determinat de b12 şi b21 . Dacă λ = 1,
atunci b13 este mijlocul segmentului. Vectorul b21 este unic determinat.
3.6. Calculul curburii ı̂n extremităţi 77
Prin urmare k2 (0)B2 (0) = k1 (1)B1 (1) dacă şi numai dacă
′ ′′ ′ ′′ ′ ′′ ′ ′′
b2 (0) × b2 (0) b1 (1) × b1 (1) λb1 (1) × b2 (0) b1 (1) × b1 (1)
′ = ′ ⇔ ′ = ′
∥b2 (0)∥3 ∥b1 (1)∥3 λ3 ∥b1 (1)∥3 ∥b1 (1)∥3
′ ′′ ′ ′′
⇔ b1 (1) × b2 (0) = λ2 b1 (1) × b1 (1).
′′
Ultima ecuaţie este o ecuaţie vectorială cu necunoscuta b2 (0) şi, conform
Propoziţiei 3.6.1, obţinem
′′ ′ λ2 ′ ′ ′′
b2 (0) = αb1 (1) − ′ b1 (1) × (b1 (1) × b (1))
∥b1 (1)∥ 2
′ λ2 ′ ′′ ′ ′ ′′
= αb1 (1) − ′ {⟨b1 (1), b1 (1)⟩b1 (1) − ∥b1 (1)∥2 b1 (1)}
∥b1 (1)∥ 2
′ ′′
= µb1 (1) + λ2 b1 (1),
unde
λ2 ′ ′′
µ = α− ′ ⟨b1 (1), b1 (1)⟩
∥b1 (1)∥2
λ2 18
= α− ⟨b13 − b12 , b11 − 2b12 + b13 ⟩
9∥b13 − b12 ∥2
2λ2
= α− {∥b13 − b12 ∥2 − ⟨b13 − b12 , b12 − b11 ⟩}.
∥b13 − b12 ∥2
′′ ′ ′′
Relaţia b2 (0) = µb1 (1) + λ2 b1 (1) este echivalentă cu
Prin urmare
b − b1 = a1 b1 + a2 b2 + a3 b3 − b1
= a1 b1 + a2 (b2 − b1 ) + a3 (b3 − b1 ) + a2 b1 + a3 b1 − b1
= (a1 + a2 + a3 − 1)b1 + a2 (b2 − b1 ) + a3 (b3 − b1 )
= a2 (b2 − b1 ) + a3 (b3 − b1 )
În concluzie, date b10 , b11 , b12 şi b13 = b20 ∈ R3 , şi dat λ > 0, din (3.6.4) şi
(3.6.6) găsim b21 şi b22 astfel ı̂ncât condiţiile de racordare sunt satisfăcute.
Vectorul b23 poate fi ales arbitrar.
3.6. Calculul curburii ı̂n extremităţi 79
.b 21
.b
b10. . 22
b13= b20
. .b .b 23
b 11 12