Geometrie computationala

January 24, 2017 | Author: Adrian Cosac | Category: N/A
Share Embed Donate


Short Description

Download Geometrie computationala...

Description

˘ GEOMETRIE COMPUTAT ¸ IONALA Mihai-Sorin Stupariu Sem. I, 2008-2009

Cuprins 1 Material preg˘ atitor 3 1.1 Elemente de algebr˘ a liniar˘a, geometrie afin˘a ¸si euclidian˘a . . . . 3 1.2 Curbe parametrizate. Curbe polinomiale. Schimb˘ari de parametru 3 1.3 Vector tangent, vector accelerat¸ie. Regularitate . . . . . . . . . . 5 1.4 Racord de clas˘ a C k al unor arce de curb˘a. Continuitate geometric˘a 6 1.5 Curbe plane (curbe 2D) . . . . . . . . . . . . . . . . . . . . . . . 8 1.6 Curbe 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.7 Elemente de geometrie diferent¸ial˘a a suprafet¸elor . . . . . . . . . 11 2 Interpolare polinomial˘ a 16 2.1 Segmente. Interpolare liniar˘a (afin˘a) . . . . . . . . . . . . . . . . 16 2.2 Algoritmul lui Aitken . . . . . . . . . . . . . . . . . . . . . . . . . 17 3 Curbe B´ ezier 19 3.1 Algoritmul de Casteljau . . . . . . . . . . . . . . . . . . . . . . . 19 3.2 Forma Bernstein a curbelor B´ezier . . . . . . . . . . . . . . . . . 21 4 Propriet˘ a¸ti ale curbelor B´ ezier 24 4.1 Propriet˘ a¸ti elementare . . . . . . . . . . . . . . . . . . . . . . . . 24 4.2 Derivatele unei curbe B´ezier . . . . . . . . . . . . . . . . . . . . . 24 4.3 Modificarea unei curbe B´ezier . . . . . . . . . . . . . . . . . . . . 25 4.4 Generarea unei curbe B´ezier cu poligoane de control diferite (m˘arirea gradului) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 4.5 Subdivizare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 5 Cubice spline 29 5.1 Racordul a dou˘ a arce de curb˘a B´ezier . . . . . . . . . . . . . . . 29 5.2 Cubice spline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 6 Curbe B´ ezier rat¸ionale

35

A Proiecte

38

B

41

1

Bibliografie

42

2

Capitolul 1

Material preg˘ atitor 1.1

Elemente de algebr˘ a liniar˘ a, geometrie afin˘ a ¸si euclidian˘ a

Not¸iuni de algebr˘ a liniar˘ a: spat¸iu vectorial, vector, combinat¸ie liniar˘a, liniar (in)dependent¸˘ a, sistem de generatori, baz˘a, reper, dimensiune a unui spat¸iu vectorial, componentele unui vector ˆıntr-un reper, matrice de trecere ˆıntre repere, repere orientate la fel (opus), reper drept (strˆamb), produs scalar, norma unui vector, versorul unui vector nenul, spat¸iu vectorial euclidian, vectori ortogonali, baz˘ a ortonormat˘ a, reper ortonormat. Not¸iuni de geometrie afin˘ a: vectorul determinat de dou˘a puncte, combinat¸ie afin˘ a, afin (in)dependent¸˘ a, acoperirea afin˘a a unei mult¸imi de puncte, dreapta determinat˘ a de dou˘ a puncte distincte, reper cartezian, coordonatele unui punct ˆıntr-un reper cartezian, sistem de axe asociat unui reper cartezian din Rn , raportul a trei puncte coliniare, segmentul determinat de dou˘a puncte, mult¸ime convex˘ a, ˆınchiderea (ˆınf˘ a¸sur˘ atoarea) convex˘a a unei mult¸imi, aplicat¸ie afin˘a (exemple: translat¸ie, omotetie, proiect¸ie, simetrie). Not¸iuni de geometrie euclidian˘ a: distant¸a dintre dou˘a puncte, reper cartezian ortonormat, izometrie, proiect¸ie central˘a. Detalii pot fi g˘ asite ˆın [8], [10], [15] [16].

1.2

Curbe parametrizate. Curbe polinomiale. Schimb˘ ari de parametru

Definit¸ia 1.1 Fie I ⊂ R un interval. O curb˘ a parametrizat˘ a de clas˘a C k k n este dat˘ a de o aplicat¸ie C -diferent¸iabil˘a c : I → R . Aplicat¸ia c se nume¸ste parametrizare, iar mult¸imea M := Im (c) se nume¸ste imagine geometric˘ a a curbei. Dac˘ a n = 2 curba se nume¸ste plan˘ a (curb˘ a 2D), iar dac˘a n = 3 curba se nume¸ste strˆ amb˘ a (curb˘ a 3D). Exemplul 1.2 (i) Curbele c 1 : R → R2 , c 2 : R → R2 , c02 : R → R2 ,

c1 (t) = (2 + 4t + 1, −2 − 4t); c2 (t) = (4 − 3 cos t, 3 + 2 sin t); c02 (t) = (4 − 3 cos 3t, 3 + 2 sin 3t); 3

c002 : R → R2 , c 3 : R → R2 ,

c002 (t) = (4 − 3 cos(1 − t), 3 + 2 sin(1 − t));

c3 (t) = (2 − t + t2 − t3 + 6t4 , 1 + t + 2t2 + 3t3 );

c4 : R → R2 , c4 (t) = (t2 − 2t + 2, 2t2 − 6t + 4) = = t2 (1, 0) + 2t(1 − t)(1, 1) + (1 − t)2 (2, 4); c5 : [0, 1] → R2 , c5 (t) = (t3 + 3t, −3t2 + 3t) = = t3 (4, 0) + 3t2 (1 − t)(2, 1) + 3t(1 − t)2 (1, 1) + (1 − t)3 (0, 0) sunt curbe parametrizate plane de clas˘a C ∞ . (ii) Curba c6 : [−1, 1] → R2 , c6 (t) = (t, t|t|) este de clas˘a C 1 , dar nu este de clas˘ a C 2 , iar curba c06 : [−1, 1] → R2 , c06 (t) = (t, |t|) este de clas˘a C 0 , dar nu este de clas˘ a C1 . (iii) Curbele c7 : R → R3 , c7 (t) = (2 cos t, 2 sin t, t) ¸si c8 : [0, 1] → R3 ,

c8 (t) = (−2t3 + 3t2 , 4t3 − 6t2 + 3t, t3 ) =

= t3 (1, 1, 1) + 3t2 (1 − t)(1, 0, 0) + 3t(1 − t)2 (0, 1, 0) + (1 − t)3 (0, 0, 0) sunt curbe strˆ ambe de clas˘ a C∞. Definit¸ia 1.3 (i) O curb˘ a polinomial˘ a de grad d este o curb˘a definit˘a de o parametrizare polinomial˘ a, i.e. de o aplicat¸ie c = (c1 , . . . , cn ) : I → Rn cu proprietatea c˘ a c1 , . . . , cn sunt funct¸ii polinomiale de grad cel mult d ¸si cel put¸in una dintre ele are grad exact d. (ii) O curb˘ a dat˘ a de o aplicat¸ie c : [u0 , uL ] → Rn se nume¸ste polinomial˘ a pe port¸iuni dac˘ a exist˘ a o diviziune u0 < u1 < . . . < ui < ui+1 < . . . < uL a intervalului [u0 , uL ] astfel ca pentru orice i = 0, . . . , L − 1, restrict¸ia c|[ui ,ui+1 ] a aplicat¸iei c la intervalul [ui , ui+1 ] s˘a fie polinomial˘a. Exemplul 1.4 (i) Curbele c1 , c3 , c4 ¸si c5 din exemplul 1.2 sunt curbe polinomiale de grade 1, 4, 2, respectiv 3. (ii) Orice curb˘ a polinomial˘a c : [a, b] → Rn este o curb˘a polinomial˘a pe port¸iuni. (iii) Curbele c6 ¸si c06 din exemplul 1.2 sunt curbe polinomiale pe port¸iuni care nu sunt curbe polinomiale, deoarece avem  (t, −t2 ), dac˘a t ∈ [−1, 0] c6 (t) = (t, t2 ), dac˘a t ∈ [0, 1]. c06 (t)

 =

(t, −t), dac˘a t ∈ [−1, 0] (t, t), dac˘a t ∈ [0, 1].

Definit¸ia 1.5 Fie c : I → Rn ¸si c¯ : I¯ → Rn dou˘a curbe parametrizate. Spunem c˘ a c ¸si c¯ difer˘ a printr-o schimbare de parametru (sau c˘a c¯ a fost obt¸inut˘a din c printr-o schimbare de parametru) dac˘a exist˘a un difeomorfism ϕ : I¯ → I (numit reparametrizare) astfel ca c¯ = c ◦ ϕ. O reparametrizare ϕ p˘ astreaz˘ a (schimb˘ a) orientarea dac˘a este strict cresc˘ atoare (respectiv strict descresc˘atoare). Observat¸ia 1.6 Printr-o reparametrizare imaginea geometric˘a a curbei considerate nu se modific˘ a, se schimb˘a doar ”modul” in care parcurgem curba.

4

Definit¸ia 1.7 O schimbare afin˘ a de parametru (reparametrizare afin˘ a) este o aplicat¸ie de forma ϕ : [c, d] → [a, b],

ϕ(t) =

ad − bc b−a t+ , d−c d−c

unde [a, b], [c, d] ⊂ R sunt dou˘a intervale (care nu se reduc la un punct). Observat¸ia 1.8 Schimb˘ arile afine de parametru sunt singurele care ment¸in o curb˘ a polinomial˘ a ˆın clasa curbelor polinomiale de acela¸si grad. Exemplul 1.9 (i) Aplicat¸iile c2 , c02 ¸si c002 din exemplul 1.2 sunt parametriz˘ari 2 2 diferite ale elipsei de ecuat¸ie (x1 −4) + (x2 −3) = 1. Schimb˘arile de parametru 9 4 utilizate sunt t 7→ 3t, respectiv t 7→ 1 − t. (ii) Aplicat¸ia ϕ : [0, 1] → [0, 1], ϕ(t) = 1 − t este o schimbare afin˘a de parametru care schimb˘ a orientarea. Aplicˆand aceast˘a schimbare de parametru curbei polinomiale de gradul 2 dat˘a de c : [0, 1] → R2 , c(t) = (t2 + 4t + 1, t + 2) obt¸inem curba parametizat˘ a c¯ : [0, 1] → R2 , c¯(t) = (t2 −6t+6, −t+3). Imaginea geometric˘ a a celor dou˘ a curbe este un arc al parabolei x1 − x22 + 3 = 0, care une¸ste punctele A = (1, 2) ¸si B = (6, 3). Parametrizarea c ”parcurge” acest arc de la A la B, ˆın vreme ce c¯ ”parcurge” acest arc ˆın sens invers. Definit¸ia 1.10 O curb˘ a dat˘a de o parametrizare injectiv˘a se nume¸ste curb˘ a simpl˘ a. Exemplul 1.11 ˆIn exemplul 1.2 curba c1 este simpl˘a, iar curba c2 nu este o curb˘ a simpl˘ a.

1.3

Vector tangent, vector accelerat¸ie. Regularitate

Definit¸ia 1.12 Fie c : I → Rn , c = (c1 , . . . , cn ) o parametrizare de clas˘a C k (k ≥ 1) a unei curbe ¸si t0 ∈ I fixat. (i) Vectorul c0 (t0 ) := (c01 (t0 ), . . . , c0n (t0 )) se nume¸ste vector tangent (vector vitez˘ a) la curb˘ a ˆın punctul corespunz˘ator lui c(t0 ). Dreapta care trece prin punctul c(t0 ) ¸si are direct¸ia dat˘a de vectorul c0 (t0 ) se nume¸ste tangent˘ a la curba c ˆın punctul c(t0 ). (ii) Dreapta care trece prin punctul c(t0 ) ¸si este perpendicular˘a la tangenta la curb˘ a ˆın acest punct se nume¸ste normal˘ a la curba c ˆın punctul c(t0 ). Observat¸ia 1.13 Ecuat¸iile parametrice ale tangentei la curba c prin punctul c(t0 ) sunt   x1 = c1 (t0 ) + sc01 (t0 ) ............... s ∈ R.  xn = cn (t0 ) + sc0n (t0 ) Definit¸ia 1.14 Fie c : I → Rn , c = (c1 , . . . , cn ) o parametrizare de clas˘a C k (k ≥ 1) a unei curbe (i) Punctul c(t0 ) se nume¸ste punct regulat dac˘a c0 (t0 ) 6= 0. (ii) Punctul c(t0 ) se nume¸ste punct singular dac˘a c0 (t0 ) = 0. (iii) O curb˘ a se nume¸ste regulat˘ a dac˘a toate punctele sale sunt regulate. Definit¸ia 1.15 Fie c : I → Rn , c = (c1 , . . . , cn ) o parametrizare de clas˘a C k (k ≥ 2) a unei curbe ¸si t0 ∈ I fixat. Vectorul c00 (t0 ) := (c001 (t0 ), . . . , c00n (t0 )) se nume¸ste vector accelerat¸ie la curb˘a ˆın punctul corespunz˘ator lui c(t0 ). 5

Propozit¸ia 1.16 Fie c : I → Rn ¸si c¯ : I¯ → Rn dou˘a parametriz˘ari de clas˘a C k (k ≥ 2) ale unei curbe, astfel ca c¯ = c ◦ ϕ, unde ϕ : I¯ → I este o schimbare de parametru. Pentru orice s ∈ I¯ au loc relat¸iile c¯0 (s) = ϕ0 (s) · c0 (ϕ(s)), c¯00 (s) = ϕ0 (s)2 · c00 (ϕ(s)) + ϕ00 (s) · c0 (ϕ(s)). ˆIn particular, regularitatea unei curbe este o proprietate intrinsec˘a a acesteia, ˆın sensul c˘ a nu depinde de parametrizarea aleas˘a. Definit¸ia 1.17 Fie c : I → Rn , c = (c1 , . . . , cn ) o parametrizare de clas˘a C k (k ≥ 1) a unei curbe ¸si [a, b] ⊂ I un interval. (i) c|[a,b] : [a, b] → Rn se nume¸ste arc al curbei c; Rb (ii) lungimea arcului de curb˘ a c|[a,b] este L(c|[a,b] ) = a kc0 (t)kdt. Propozit¸ia 1.18 Lungimea unui arc de curb˘a este invariant˘a la schimb˘ari de parametru.

1.4

Racord de clas˘ a C k al unor arce de curb˘ a. Continuitate geometric˘ a

Definit¸ia 1.19 Fie c1 : [a, b] → Rn ¸si c2 : [b, c] → Rn dou˘a parametriz˘ari ale unor arce de curb˘ a. (i) Dac˘ a c1 (b) = c2 (b) =: P , spunem c˘a cele dou˘a arce sunt racordate ˆın punctul P . (l)

(l)

(ii) Racordul se nume¸ste de clas˘ a C k dac˘a c1 (b) = c2 (b), oricare ar fi l = 0, . . . , k. Exemplul 1.20 Curbele date de parametriz˘arile c1 : [−2, 0] → R2 , c2 : [0, 3] → R2 ,

c1 (t) = (2t + 1, t + 2),

c2 (t) = (t3 − 3t2 + 2t + 1, t2 + t + 2)

au ˆın punctul P = (1, 2) un racord de clas˘a C 1 care nu este de clas˘a C 2 . Mai precis, avem: c1 (0) = c2 (0) = (1, 2);

c01 (0) = c02 (0) = (2, 1);

c001 (0) = (0, 0) 6= c002 (0) = (−6, 2). Observat¸ia 1.21 Fie c1 : [a, b] → Rn ¸si c2 : [b, c] → Rn dou˘a parametriz˘ari ale unor arce de curb˘ a care au ˆın P = c1 (b) = c2 (b) un racord de clas˘a C k (k ≥ 1). Fie ϕ : [¯ a, b] → [a, b] o schimbare de parametru astfel ca ϕ(b) = b, dar ϕ0 (b) 6= 1 (spre exemplu, o schimbare afin˘a de parametru ˆıntre intervale de lungimi diferite) ¸si fie c¯1 := c1 ◦ ϕ curba obt¸inut˘a ˆın urma reparametriz˘arii. Atunci c¯01 (b) = ϕ0 (b) · c01 (b) 6= c02 (b), ceea ce arat˘ a c˘ a, ˆın general, racordul de clas˘a C k nu se p˘astreaz˘a ˆın urma schimb˘ arilor de parametru. Vectorii tangent¸i sunt coliniari, dar nu identici. Concret, considerˆ and curbele c1 ¸si c2 din exemplul 1.20, schimbarea de parametru ϕ : [−1, 0] → [−2, 0], ϕ(s) = 2s ¸si curba c¯1 : [−1, 0] → R2 , c¯1 := c1 ◦ ϕ, i.e. c¯1 (s) = (4s + 1, 2s + 2), 6

avem c¯1 (0) = c2 (0) = (1, 2);

c¯01 (0) = (4, 2) 6= c02 (0) = (2, 1).

A¸sadar, de¸si parametriz˘ arile c¯1 ¸si c1 sunt echivalente, ele nu au acela¸si tip de racord cu c2 ˆın punctul (1, 2): c¯1 are un racord de clas˘a C 0 , iar c1 are un racord de clas˘ a C 1 . Remarc˘ am faptul c˘a avem c¯01 (0) = 2 · c02 (0). Pentru a permite o mai mare flexibilitate ˆın racordul unor arce de curb˘a ¸si pentru a nu ”pierde” proprietatea de racord de clas˘a C k ˆın urma reparametriz˘ arilor este introdus˘ a not¸iunea de continuitate geometric˘a (definit¸ia 1.23). Observat¸ia 1.22 Exist˘ a o clas˘a important˘a de schimb˘ari de parametru care p˘ astreaz˘ a racordul de clas˘ a C k : translat¸iile, i.e. reparametriz˘arile de forma ϕ : [a, b] → [a − α, b − α],

ϕ(t) = t − α,

(a, b, α ∈ R, a < b),

deoarece, ˆın cazul unei translat¸ii, avem ϕ0 (t) = 1, ϕ(l) = 0, pentru orice t ∈ [a, b] ¸si pentru orice l ≥ 2. ˆIn particular, pentru a studia problema racordului de clas˘a C k este suficient s˘ a alegem intervalele pe care sunt definite parametriz˘arile de forma [a, 0], respectiv [0, b], deoarece, printr-o schimbare de tip translat¸ie, orice dou˘a intervale arbitrare pot fi transformate ˆın intervale de acest tip. Definit¸ia 1.23 Fie c1 : [a, 0] → Rn ¸si c2 : [0, b] → Rn dou˘a parametriz˘ari ale unor arce de curb˘ a astfel ca c1 (0) = c2 (0) =: P ¸si c01 (0) 6= 0, c02 (0) 6= 0. Cele dou˘ a arce au ˆın punctul P un racord de clas˘ a GC k dac˘a exist˘a o reparametrizare (care p˘ astreaz˘a orientarea) ϕ : [¯ a, 0] → [a, 0] cu ϕ(0) = 0, astfel ˆıncˆ at parametriz˘ arile c1 ◦ ϕ ¸si c2 s˘a verifice condit¸iile de racord de clas˘a C k . ˆIn acest caz spunem c˘ a parametrizarea  c1 (t), dac˘a t ∈ [a, 0] c : [a, b] → Rn , c(t) = c2 (t), dac˘a t ∈ [0, b] are continuitate geometric˘ a de clas˘ a GC k ˆın t = 0. Observat¸ia 1.24 ˆIn CAGD sunt utilizate mai ales condit¸iile de racord de clas˘a GC 1 ¸si GC 2 , care pot fi verificate astfel: fie c1 ¸si c2 dou˘a parametriz˘ari ca ˆın definit¸ia 1.23. Atunci: (i) arcele definite de cele dou˘a parametriz˘ari au un racord de clas˘a GC 1 dac˘a ¸si numai dac˘ a exist˘ a o constant˘a pozitiv˘a α > 0 astfel ca c02 (0) = α · c01 (0) (i.e. vectorii tangent¸i la cele dou˘a curbe sunt coliniari ¸si au acela¸si sens); (ii) arcele definite de cele dou˘a parametriz˘ari au un racord de clas˘a GC 2 dac˘a ¸si numai dac˘ a exist˘ a o constante α > 0, β ∈ R astfel ca c02 (0) = α · c01 (0) c002 (0) = α2 · c001 (0) + β · c01 (0). Exemplul 1.25 Fie curbele c1 : [−2, 0] → R2 ,

c1 (t) = (3t3 − 2t2 + 2t + 2, t2 − 2t + 1),

c2 : [0, 1] → R2 , 2

c3 : [0, 1] → R ,

c2 (t) = (6t + 2, −6t + 1),

c3 (t) = (3t3 − 10t2 + 4t + 2, 6t2 − 4t + 1).

7

Cum c1 (0) = c2 (0) = c3 (0) = (2, 1), ne putem pune problema racordului curbei c1 cu c2 ¸si cu c3 ˆın t = 0. Pentru a stabili ce clas˘a au aceste racorduri, calcul˘am c01 (0) = (2, −2),

c02 (0) = (6, −6),

c001 (0) = (−4, 2),

c002 (0) = (0, 0),

c03 (0) = (4, −4); c003 (0) = (−20, 12).

Avem c02 (0) = 3c01 (0), iar c002 (0) − 9c001 (0) = (36, −18). Acest vector nu este coliniar cu c01 (0) = (2, −2), deci curbele c1 ¸si c2 au un racord de clas˘a GC 1 care nu este de clas˘ a GC 2 ˆın (2, 1) = c1 (0) = c2 (0). ˆIn schimb, c03 (0) = 2c01 (0),

c003 (0) − 4c001 (0) = (−4, 4) = −2c01 (0),

ceea ce arat˘ a c˘ a c1 ¸si c3 au un racord de clas˘a GC 2 ˆın P = c1 (0) = c3 (0).

1.5

Curbe plane (curbe 2D)

Definit¸ia 1.26 Fie c : I → R2 , c = (c1 , c2 ) o curb˘a plan˘a. (i) Curbura lui c ˆıntr-un punct regulat c(t) este κc (t) :=

c01 (t)c002 (t) − c001 (t)c02 (t) (c01 (t)2 + c02 (t)2 )

3 2

=

det(c0 (t), c00 (t)) . kc0 (t)k3

(ii) ˆIn cazul ˆın care κc (t) 6= 0, raza de curbur˘ a a lui c ˆın c(t) este, prin definit¸ie, |κc1(t)| . Exemplul 1.27 (i) Curbura unei drepte este egal˘a cu 0 ˆın orice punct al dreptei: fie c : R → R2 , c(t) = (a1 + t(b1 − a1 ), a2 + t(b2 − a2 )) o parametrizare a unei drepte. Atunci c0 (t) = (b1 − a1 , b2 − a2 ), c00 (t) = (0, 0), deci κc (t) = 0 pentru orice t ∈ R. 1 r

(ii) Curbura unui cerc de raz˘a r este, la rˆandul s˘au constant˘a, fiind egal˘a cu ˆın orice punct: fie c : R → R2 ,

c(t) = (a1 + r cos t, a2 + r sin t)

o parametrizare a cercului de centru (a1 , a2 ) ¸si de raz˘a r. Avem c0 (t) = (−r sin t, r cos t),

c00 (t) = (−r cos t, −r sin t),

∀t ∈ R,

de unde deducem c˘ a det(c0 (t), c00 (t)) = det



−r sin t r cos t

rezultˆ and imediat c˘ a avem κc (t) =

1 r

−r cos t −r sin t



= r2 ;

kc0 (t)k = r;

pentru orice t ∈ R.

2

(iii) Fie c : R → R , c(t) = (a cos t, b sin t) cu a > b > 0 o parametrizare a elipsei de centru O ¸si semiaxe a ¸si b. Avem c0 (t) = (−a sin t, b cos t); det(c0 (t), c00 (t)) = ab;

c00 (t) = (−a cos t, −b sin t); p kc0 (t)k = a2 sin2 t + b2 cos2 t.

ˆIn acest caz curbura nu mai este constant˘a, ci avem κc (t) =

8

ab 3

(a2 sin2 t+b2 cos2 t) 2

.

Observat¸ia 1.28 (i) Fie c : I → R2 o parametrizare a unei curbe 2D regulate ¸si fie ϕ : I¯ → I o schimbare de parametru. Oricare ar fi s ∈ I¯ are loc egalitatea κc◦ϕ (s) = sgn(ϕ)κc (ϕ(s)), unde sgn(ϕ) este egal cu 1 sau −1, dup˘a cum ϕ este cresc˘atoare sau descresc˘ atoare (i.e. curbura unei curbe 2D este invariant˘a, pˆan˘a la semn, la schimb˘ari de parametru). (ii) Fie c : I → R2 o curb˘a 2D ¸si F : R2 → R2 o izometrie. Pentru orice t ∈ I are loc egalitatea κF ◦c (t) = ε(F ) · κc (t), unde ε(F ) este 1 sau −1, dup˘a cum F p˘astreaz˘a sau schimb˘a orientarea (i.e. curbura unei curbe 2D este invariant˘a, pˆan˘a la semn, la izometrii). (iii) Exemplele (i) ¸si (ii) din 1.27 arat˘a c˘a dreptele ¸si cercurile sunt curbe cu curbura constant˘ a (nul˘ a, respectiv nenul˘a). Reciproc, dac˘a o curb˘a 2D c : I → R2 cu I ⊂ R interval conex are curbura constant˘a κc (t) = κ ˆın orice punct c(t), atunci imaginea sa geometric˘a este fie inclus˘a ˆıntr-o dreapt˘a (cˆand κ = 0), fie and κ 6= 0). ˆıntr-un cerc de raz˘ a κ1 (cˆ ˆ (iv) In general, se poate pune problema ˆın ce m˘asur˘a dat˘a curbura putem ”reconstitui” curba (existent¸˘a, unicitate). R˘aspunsul este dat de teorema fundamental˘ a a curbelor plane (vezi, de exemplu, [11, capitolul 6]).

1.6

Curbe 3D

Definit¸ia 1.29 Fie c : I → R3 , c = (c1 , c2 , c3 ) o curb˘a 3D de clas˘a C k (k ≥ 3) cu proprietatea c˘ a vectorii c0 (t) ¸si c00 (t) sunt liniar independent¸i, oricare ar fi t ∈ I. (i) Curbura lui c ˆın punctul c(t) este dat˘a de κ(t) :=

kc0 (t) × c00 (t)k . kc0 (t)k3

(ii) Torsiunea lui c ˆın punctul c(t) este dat˘a de τ (t) :=

hc0 (t) × c00 (t), c000 (t)i . kc0 (t) × c00 (t)k2

Exemplul 1.30 (i) Consider˘am curba c : (0, ∞) → R3 ,

c(t) = (2 + t + t3 , −t − t3 , 5 + t3 ).

Avem, pentru orice t ∈ (0, ∞), c0 (t) = (1 + 3t2 , −1 − 3t2 , 3t2 ),

kc0 (t)k =

c00 (t) = (6t, −6t, 6t),

p 2(1 + 3t2 )2 + 9t4 ;

c000 (t) = (6, −6, 6),

√ c0 (t) × c00 (t) = (−6t, −6t, 0); kc0 (t) × c00 (t)k = 6 2t; √ 6 2t κ(t) = p , τ (t) = 0. ( 2(1 + 3t2 )2 + 9t4 )3 (ii) Consider˘ am curba c : R → R3 ,

c(t) = (a cos t, a sin t, bt), 9

a > 0, b 6= 0,

numit˘ a elice circular˘ a dreapt˘ a. ˆIn acest caz avem c0 (t) = (−a sin t, a cos t, b),

kc0 (t)k =

p

a2 + b2 ;

c00 (t) = (−a cos t, −a sin t, 0),

c000 (t) = (a sin t, −a cos t, 0); p c0 (t) × c00 (t) = (ab sin t, −ab cos t, a2 ), kc0 (t) × c00 (t)k = a a2 + b2 ; b a , τ (t) = 2 . 2 +b a + b2 Remarc˘ am c˘ a funct¸iile curbur˘a ¸si torsiune sunt constante. (iii) Consider˘ am curba κ(t) =

a2

c : R → R3 ,

c(t) = (t, t2 ,

2t3 ). 3

Pentru aceast˘ a curb˘ a au loc egalit˘a¸tile c0 (t) = (1, 2t, 2t2 ),

kc0 (t)k = 1 + 2t2 ;

c00 (t) = (0, 2, 4t),

c000 (t) = (0, 0, 4);

c0 (t) × c00 (t) = 2(2t2 , −2t, 1), 2 , κ(t) = (1 + 2t2 )2

kc0 (t) × c00 (t)k = 2(1 + 2t2 ); 2 τ (t) = . (1 + 2t2 )2

ˆIn acest caz funct¸iile curbur˘ a ¸si torsiune nu sunt constante, dar raportul κτ este o constant˘ a. ˆIn general, o curb˘a pentru care raportul dintre torsiune ¸si curbur˘a este constant, se nume¸ste elice. Observat¸ia 1.31 (i) Curbura unei curbe 3D este o funct¸ie pozitiv˘a. (ii) O curb˘ a 3D are imaginea inclus˘a ˆıntr-un plan dac˘a ¸si numai dac˘a torsiunea sa este nul˘ a ˆın orice punct al s˘au. (iii) Fie c : I → R3 o parametrizare a unei curbe 3D regulate ¸si fie ϕ : I¯ → I o schimbare de parametru. Oricare ar fi s ∈ I¯ au loc loc egalit˘a¸tile κc◦ϕ (s) = κc (ϕ(s));

τc◦ϕ (s) = ε(ϕ)τc (ϕ(s)).

(iv) Fie c : I → R3 o curb˘a 3D ¸si F : R3 → R3 o izometrie. Pentru orice t ∈ I au loc relat¸iile κF ◦c (t) = κc (t),

τF ◦c (t) = ε(F ) · τc (t).

(v) Prin analogie cu rezultatele referitoare la curbele plane, se poate pune problema ˆın ce m˘ asur˘ a putem ”reconstitui” o curb˘a 3D (existent¸˘a, unicitate) pornind de la curbur˘ a ¸si torsiune. R˘aspunsul este dat de teorema fundamental˘a a curbelor strˆ ambe (vezi, de exemplu, [11, capitolul 10]). Definit¸ia 1.32 Fie c : I → R3 , c = (c1 , c2 , c3 ) o curb˘a 3D de clas˘a C k (k ≥ 3) cu proprietatea c˘ a vectorii c0 (t) ¸si c00 (t) sunt liniar independent¸i, oricare ar fi t ∈ I. Triedrul Frenet ˆın punctul c(t) este format din vectorii T (t) :=

c0 (t) , kc0 (t)k

N (t) := B(t) × T (t),

B(t) :=

c0 (t) × c00 (t) . kc0 (t) × c00 (t)k

Vectorul T (t) este versorul tangentei la curb˘a ˆın punctul c(t). Vectorii N (t) ¸si B(t) se numesc vector normal˘ a principal˘ a, respectiv vector binormal˘ a la curb˘ a ˆın punctul respectiv. 10

Observat¸ia 1.33 (i) Triedrul Frenet este un reper ortonormat mobil. (ii) Formulele lui Frenet, scrise matriceal sub forma  0      T 0 vκ 0 T  N 0  =  −vκ 0 vτ  ·  N  , v = kc0 k 0 B 0 −vτ 0 B arat˘ a cum pot fi exprimate derivatele vectorilor triedrului Frenet ˆın reperul asociat acestui triedru.

1.7

Elemente de geometrie diferent¸ial˘ a a suprafet¸elor

Definit¸ia 1.34 O suprafat¸˘ a parametrizat˘ a de clas˘a C k este dat˘a de o aplicat¸ie k 3 2 C -diferent¸iabil˘ a f : U → R , unde U ⊂ R este o mult¸ime (conex˘a). Aplicat¸ia f se nume¸ste parametrizare, iar mult¸imea M := Im (f ) se nume¸ste imagine geometric˘ a a suprafet¸ei. Exemplul 1.35 (i) Consider˘am (a, b) ∈ R2 \ {(0, 0)} ¸si f : R2 → R3 ,

f (u, v) = (u, v, au + bv + c).

Imaginea geometric˘ a a lui f este planul de ecuat¸ie x3 = ax1 + bx2 + c. 3 (i’) Fie P0 ∈ R un punct fixat ¸si w1 , w2 doi vectori ortogonali de lungime egal˘ a cu 1. Atunci f : R2 → R3 ,

f (u, v) := P0 + u · w1 + v · w2

este o suprafat¸˘ a parametrizat˘a de clas˘a C ∞ , a c˘arui imagine geometric˘a este planul care trece prin P0 ¸si are subspat¸iul director hw1 , w2 i. (ii) Fie r > 0 fixat. Aplicat¸ia  π π × R → R3 , f (u, v) = (r cos u cos v, r cos u sin v, r sin u) f: − , 2 2 d˘ a na¸stere unei suprafet¸e de clas˘a C ∞ a c˘arei imagine geometric˘a este sfera de centru ¸si raz˘ (iii)0Funct ¸iaa r din care au fost eliminate punctele N (0, 0, r) ¸si S(0, 0, −r). f : (0, 2π) × R → R3 ,

f (u, v) = (cos u, sin u, v)

reprezint˘ a o suprafat¸˘ a a c˘ arei imagine este un cilindru circular drept din care a fost scoas˘ a o dreapt˘ a. (iv) Aplicat¸ia f : R2 → R3 ,

f (u, v) = (u cos v, u sin v, u)

este o parametrizare de clas˘ a C ∞ a c˘arei imagine geometric˘a este conul avˆand 2 2 2 ecuat¸ia x1 + x2 − x3 = 0. (v) ˆIn general, s˘ a consider˘am o curb˘a plan˘a ¸si o dreapt˘a d situat˘a ˆın planul curbei ¸si care nu intersecteaz˘a imaginea curbei. ”Rotind” imaginea geometric˘a a curbei ˆın jurul lui d, obt¸inem o suprafat¸˘ a de rotat¸ie. Pentru simplitate s˘a presupunem c˘ a dreapta d este dreapta suport a axei Ox3 , iar curba plan˘a pe care o rotim este inclus˘ a ˆın planul Ox1 x3 , deci are o parametrizare de forma c : I ⊂ R → R3 ,

c(t) = (ϕ(t), 0, ψ(t)), ϕ(t) 6= 0. 11

Vom presupune ˆın continuare c˘a ϕ(t) > 0. Un punct fixat P = (ϕ(t0 ), 0, ψ(t0 )) al curbei se rote¸ste ˆın planul perpendicular pe d ce-l cont¸ine, descriind un cerc de centru (0, 0, ψ(t0 )) ¸si de raz˘a ϕ(t0 ), deci, prin rotire, genereaz˘a puncte de forma (ϕ(t0 ) cos v, ϕ(t0 ) sin v, ψ(t0 )). ˆIn consecint¸˘ a, suprafat¸a de rotat¸ie obt¸inut˘a este imaginea parametriz˘arii f : I × R → R3 ,

f (u, v) = (ϕ(u) cos v, ϕ(u) sin v, ψ(u)).

Cazuri particulare: Sfer˘ a (f˘ar˘a poli), cilindru, tor, hiperboloid cu o pˆanz˘a, catenoid, pseudosfer˘ a. (vi) Aplicat¸ia f : (0, 2π) × R → R3 ,

f (u, v) = (v cos u, v sin u, au),

a>0

reprezint˘ a o suprafat¸˘ a numit˘a elicoid drept. Observat¸ia 1.36 Pentru a obt¸ine informat¸ii suplimentare despre forma unei suprafet¸e este util s˘ a consider˘am curbe (cˆat mai convenabile) situate pe aceast˘a suprafat¸˘ a. De exemplu, s˘ a consider˘ am sfera din exemplul 1.35 (ii) ¸si s˘a fix˘am (u0 , v0 ) ∈  − π2 , π2 . Curbele v 7→ f (u0 , v), u 7→ f (u, v0 ) reprezint˘ a un cerc paralel, respectiv un cerc meridian al sferei. ˆIn cazul elicoidului drept, dac˘a fix˘am (u0 , v0 ) cu u0 6= 0, f (·, v0 ) curba reprezint˘ a o port¸iune a unei elice circulare drepte, iar curba f (u0 , ·) reprezint˘a normala la aceast˘ a curb˘ a ˆın punctul f (u0 , v0 ). Definit¸ia 1.37 Fie f : U → R3 o suprafat¸˘a. Pentru (u0 , v0 ) ∈ U fixat, curbele v 7→ f (u0 , v),

u 7→ f (u, v0 )

se numesc curbe coordonate (duse prin punctul f (u0 , v0 )). Notat¸ie. Fie f : U → R3 o suprafat¸˘a de clas˘a C k (k ≥ 1). Fix˘am (u0 , v0 ) ∈ U ¸si not˘ am ∂f ∂f fu (u0 , v0 ) := (u0 , v0 ), fv (u0 , v0 ) := (u0 , v0 ). ∂u ∂v Definit¸ia 1.38 Fie f : U → R3 o suprafat¸˘a parametrizat˘a. (i) f se nume¸ste regulat˘ a ˆın punctul (u0 , v0 ) dac˘a vectorii fu (u0 , v0 ), fv (u0 , v0 ) sunt liniar independent¸i. ˆIn acest caz f (u0 , v0 ) (sau (u0 , v0 )) se nume¸ste punct regulat, ˆın caz contrar se nume¸ste punct singular. (ii) f se nume¸ste suprafat¸˘ a regulat˘ a dac˘a este regulat˘a ˆın orice punct al s˘ au. Exemplul 1.39 (i) Planul, sfera, elicoidul drept sunt suprafet¸e regulate. (ii) Punctul f (0, 0) al conului este singular, restul sunt puncte regulate. Observat¸ia 1.40 Vectorii fu (u0 , v0 ), fv (u0 , v0 ) sunt vectorii tangent¸i ai curbelor coordonate care trec prin punctul f (u0 , v0 ). Observat¸ie. ˆIn cele ce urmeaz˘a vom considera suprafet¸e parametrizate regulate de clas˘ a C k (k ≥ 2).

12

Definit¸ia 1.41 Fie f : U → R3 o suprafat¸˘a, fie (u, v) ∈ U fixat. (i) Spat¸iul (vectorial) tangent la suprafat¸˘ a ˆın f (u, v) este planul T(u,v) := hfu (u, v), fv (u, v)i generat de vectorii fu (u, v), fv (u, v). (ii) Planul tangent la suprafat¸˘ a ˆın punctul f (u, v) este planul care trece prin punctul f (u, v) ¸si are direct¸ia dat˘a de planul vectorial T(u,v) . (iii) Normala la suprafat¸˘ a ˆın punctul f (u, v) este dreapta care trece prin f (u, v) ¸si este perpendicular˘ a pe T(u,v) . Observat¸ia 1.42 Un vector director al normalei la suprafat¸˘a ˆın f (u, v) este N (u, v) =

fu (u, v) × fv (u, v) . kfu (u, v) × fv (u, v)k

Definit¸ia 1.43 Sistemul de vectori {fu (u, v), fv (u, v), N (u, v)} se nume¸ste reper Gauss la suprafat¸˘a ˆın punctul f (u, v). Definit¸ia 1.44 Fie f : U → R3 o suprafat¸˘a, fie (u, v) ∈ U fixat. Numerele E(u, v) := hfu (u, v), fu (u, v)i, F (u, v) := hfu (u, v), fv (u, v)i, G(u, v) := hfv (u, v), fv (u, v)i se numesc coeficient¸ii primei forme fundamentale a suprafet¸ei ˆın f (u, v). Observat¸ia 1.45 (i) Au loc inegalit˘a¸tile E(u, v) > 0,

G(u, v) > 0,

E(u, v)G(u, v) − F (u, v)2 > 0.

(ii) Atunci cˆ and (u, v) variaz˘a ˆın U , se obt¸in funct¸ii E, F, G : U → R (coeficient¸ii primei forme fundamentale). Exemplul 1.46 (i) Pentru planul din exemplul 1.35 (i’) se obt¸in vectorii fu (u, v) = w1 ,

N (u, v) = w1 × w2

fv (u, v) = w2 ,

iar coeficient¸ii primei forme fundamentale sunt funct¸iile constante E = 1,

F = 0,

G = 1.

(ii) Pentru cilindrul din exemplul 1.35 (iii) avem, oricare ar fi (u, v): fu (u, v) = (− sin u, cos u, 0),

fv (u, v) = (0, 0, 1),

E(u, v) = 1,

F (u, v) = 0,

N (u, v) = (cos u, sin u, 0);

G(u, v) = 1.

ˆIn particular, avem dou˘ a suprafet¸e diferite avˆand aceia¸si coeficient¸i ai primei forme fundamentale. (iii) Pentru sfera din exemplul 1.35 (ii) avem fu (u, v) = (−r sin u cos v, −r sin u sin v, r cos u), fv (u, v) = (−r cos u sin v, r cos u cos v, 0), N (u, v) = (− cos u cos v, − cos u sin v, − sin u); E(u, v) = r2 ,

F (u, v) = 0, 13

G(u, v) = r2 cos2 u.

Observat¸ia 1.47 Coeficient¸ii primei forme fundamentale sunt utilizat¸i pentru a efectua ”m˘ asur˘ atori” pe suprafat¸˘a (lungimi de curbe, unghiuri ˆıntre curbe, arii ale unor port¸iuni de suprafat¸˘a) f˘ar˘a a ne raporta la spat¸iul ambiant R3 . Geometria intrinsec˘ a a suprafet¸ei este format˘a din acele propriet˘a¸ti geometrice care depind numai de coeficient¸ii primei forme fundamentale. Definit¸ia 1.48 Fie f : U → R3 o suprafat¸˘a, fie (u, v) ∈ U fixat. Numerele EII (u, v) := hN (u, v), fuu (u, v)i, FII (u, v) := hN (u, v), fuv (u, v)i(= hN (u, v), fvu (u, v)i), GII (u, v) := hN (u, v), fvv (u, v)i se numesc coeficient¸ii celei de-a doua forme fundamentale a suprafet¸ei ˆın f (u, v). Exemplul 1.49 (i) Pentru planul din exemplul 1.35 (i’) iar coeficient¸ii celei de-a doua forme fundamentale sunt funct¸iile constante EII = 0,

FII = 0,

GII = 0.

(ii) Pentru cilindrul din exemplul 1.35 (iii) avem, oricare ar fi (u, v): EII (u, v) = −1,

FII (u, v) = 0,

GII (u, v) = 0.

(iii) Pentru sfera din exemplul 1.35 (ii) avem EII (u, v) = r,

FII (u, v) = 0,

GII (u, v) = r cos2 u.

Definit¸ia 1.50 Fie f : U → R3 o suprafat¸˘a, fie (u, v) ∈ U fixat. (i) Matricea operatorului Weingarten ˆın f (u, v) este definit˘a prin  A(u, v) :=

E F

−1  EII · FII

F G

FII GII

 .

(ii) Curbura medie a suprafet¸ei ˆın f (u, v) este H(u, v) :=

1 tr A(u, v). 2

(iii) Curbura Gauss (total˘ a) a suprafet¸ei ˆın f (u, v) este K(u, v) := det A(u, v). Observat¸ia 1.51 Se obt¸in funct¸ii H, K : U → R, numite curbur˘a medie, respectiv curbur˘ a Gauss. Exemplul 1.52 (i) Pentru planul din exemplul 1.35 (i’) curbura medie ¸si curbura Gauss sunt funct¸iile constante H(u, v) = 0,

K(u, v) = 0.

(ii) Pentru cilindrul din exemplul 1.35 (iii) curbura medie ¸si curbura Gauss sunt funct¸iile constante 1 H(u, v) = − , 2

K(u, v) = 0. 14

(iii) Pentru sfera din exemplul 1.35 (ii) curbura medie ¸si curbura Gauss sunt funct¸iile constante 1 1 K(u, v) = 2 . H(u, v) = , r r (iv) Pentru elicoidul drept din exemplul 1.35 (vi) curbura medie, respectiv curbura Gauss sunt date de H(u, v) = 0,

K(u, v) = −

(a2

a . + v 2 )2

Definit¸ia 1.53 Fie f : U → R3 o suprafat¸˘a. Un punct f (u, v) se nume¸ste (i) eliptic ˆın cazul ˆın care K(u, v) > 0; (ii) hiperbolic ˆın cazul ˆın care K(u, v) < 0; (iii) parabolic ˆın cazul ˆın care K(u, v) = 0 ¸si H(u, v) 6= 0; (iv) planar ˆın cazul ˆın care K(u, v) = 0 ¸si H(u, v) = 0. Exemplul 1.54 Toate punctele planului sunt planare, toate punctele cilindrului sunt parabolice, toate punctele sferei sunt eliptice, iar punctele elicoidului sunt hiperbolice. Pe de alt˘ a parte, torul este o suprafat¸˘a care are puncte eliptice, parabolice ¸si hiperbolice. Propozit¸ia 1.55 (O interpretare geometric˘ a a curburii Gauss) (i) Dac˘ a un punct P al unei suprafet¸e este eliptic, atunci exist˘a o vecin˘atate a sa astfel ca toate punctele acestei vecin˘at˘a¸ti s˘a fie situate de aceea¸si parte a planului tangent la suprafat¸˘ a ˆın P . (ii) Dac˘ a un punct P al unei suprafet¸e este hiperbolic, atunci pentru orice vecin˘ atate a lui P pot fi g˘ asite puncte ale acesteia ¸si de o parte ¸si de cealalt˘a parte a planului tangent. Teorema 1.56 (Theorema Egregium, Gauss) Curbura total˘a ¸tine de geometria intrinsec˘ a a suprafet¸ei. Teorema 1.57 (Gauss) Fie T un triunghi geodezic al unei suprafet¸e f : U → R3 cu f injectiv˘ a ¸si fie ϕ1 , ϕ2 , ϕ3 unghiurile lui T . Are loc egalitatea Z ϕ1 + ϕ2 + ϕ3 − π = Kdσ, T

unde

Z

ZZ Kdσ =

T

p K(u, v) EG − F 2 du dv.

f −1 (T )

Mai multe not¸iuni ¸si rezultate referitoare la teoria curbelor ¸si a suprafet¸elor, precum ¸si numeroase exemple, pot fi g˘asite ˆın lucr˘arile [11], [9], [14] ¸si [12].

15

Capitolul 2

Interpolare polinomial˘ a ˆIn acest capitol ne propunem s˘a indic˘am o solut¸ie pentru urm˘atoarea problem˘a: Problema 2.1 Se consider˘ a un sistem de puncte p0 , p1 , . . . , pn (poligon de control) din planul R2 , precum ¸si un ¸sir de numere reale t0 < t1 < . . . < tn . S˘ a se construiasc˘ a o curb˘ a polinomial˘ a care s˘ a interpoleze punctele date, i.e. o curb˘ a c : R → R2 cu proprietatea c˘ a c(t0 ) = p0 , c(t1 ) = p1 , . . . , c(tn ) = pn .

2.1

Segmente. Interpolare liniar˘ a (afin˘ a)

Discut˘ am mai ˆıntˆ ai cazul ˆın care n = 1, deci pornim la drum cu dou˘a puncte, p0 ¸si p1 . ˆIn cazul particular ˆın care t0 = 0 ¸si t1 = 1, curba parametrizat˘a c : R → R2 ,

c(s) = (1 − s)p0 + sp1 ,

a c˘ arei imagine geometric˘ a este dreapta p0 p1 reprezint˘a o solut¸ie a problemei considerate. Mai mult, pentru s ∈ [0, 1], se obt¸in punctele segmentului [p0 , p1 ], pentru s < 0 se obt¸in punctele p de pe dreapta p0 p1 cu proprietatea c˘a p0 este strict ˆıntre p ¸si p1 , etc. Fie acum t0 < t1 dou˘ a numere reale. Pentru a construi o curb˘a cu proprietatea cerut˘ a, trebuie s˘ a g˘ asim o aplicat¸ie care s˘a fac˘a ”trecerea” ˆıntre intervalele [t0 , t1 ] ¸si [0, 1], cu alte cuvinte s˘a reparametriz˘am curba de mai sus. Cea mai simpl˘ a posibilitate (dar nu singura!) este de a considera schimbarea afin˘a de parametru ϕ : R → R, ϕ(s) = (1 − s)t0 + st1 , a c˘arei invers˘a este aplicat¸ia ψ : [t0 , t1 ] → [0, 1],

ψ(t) =

t − t0 . t1 − t0

ˆIn concluzie, compunerea s : [t0 , t1 ] → R2 , s := c ◦ ψ, reprezint˘a o solut¸ie a problemei date. Explicit avem s(t) =

t1 − t t − t0 p0 + p1 , t1 − t0 t1 − t0

∀t ∈ R.

Pentru t ∈ [t0 , t1 ] obt¸inem o parametrizare a segmentului [p0 , p1 ], pentru t < 0 obt¸inem o parametrizare a semidreptei deschise cu cap˘atul p0 care nu ˆıl cont¸ine pe p1 , ¸s.a.m.d.

16

G˘ asit¸i ¸ si alte schimb˘ ari de parametru ˆıntre intervalele [0, 1] ¸ si [t0 , t1 ].

p0 = s(t0 ) |

{z

}

p1 = s(t1 )

|

{z

t < t0

}

|

t0 < t < t 1

{z

}

t > t1

Avˆ and ˆın vedere c˘ a am utilizat combinat¸ii afine ale punctelor p0 ¸si p1 pentru a obt¸ine punctele curbei s, spunem c˘a aceast˘a curb˘a a fost obt¸inut˘a prin interpolare afin˘ a. Prin abuz de limbaj, metoda mai este numit˘a ¸si interpolare liniar˘ a.

2.2

Algoritmul lui Aitken

ˆInainte de a discuta situat¸ia general˘a, analiz˘am cazul n = 2. Fie, a¸sadar, p0 , p1 ¸si p2 trei puncte din plan, precum ¸si t0 < t1 < t2 trei numere reale. O prim˘a curb˘ a care satisface condit¸ia din enunt¸ este dat˘a de reuniunea semidreptelor p0 p1 ] ¸si [p1 p2 . ˆIn cazul ˆın care cele trei puncte considerate nu sunt coliniare, aceast˘ a curb˘ a are clas˘ a C 0 ˆın p1 , dar nu are clas˘a C 1 ˆın acest punct (de ce?). Pentru a construi o curb˘a neted˘a cu proprietatea cerut˘a, vom utiliza o interpolare afin˘ a repetat˘ a. Definim mai ˆıntˆai punctele p10 (t) = p11 (t)

t − t0 t1 − t p0 + p1 , t1 − t0 t1 − t0

t − t1 t2 − t p1 + p2 , = t2 − t1 t2 − t1

Analizat¸i pozit¸ia punctelor p10 (t), respectiv p10 (t), pentru t ∈ [t0 , t2 ].

care sunt situate pe dreptele p0 p1 , respectiv p1 p2 . Ment¸ion˘am faptul c˘a pentru t = t1 cele dou˘ a puncte coincid cu t1 ; avem, de asemenea, egalit˘a¸tile p10 (t0 ) = p0 , p11 (t2 ) = p2 . Ideea de baz˘a a algoritmului este de a efectua o nou˘ a interpolare afin˘ a, cˆ at mai convenabil˘a, de aceast˘a dat˘a a punctelor nou construite p10 ¸si p11 . Fie, a¸sadar p20 (t) :=

t − t0 1 t2 − t 1 p (t) + p (t). t2 − t0 0 t2 − t0 1

Acest punct, descrie de fapt o curb˘a c : R → R2 ,

c(t) := p20 (t).

Putem determina explicit punctul c ˆın funct¸ie de punctele init¸iale p0 , p1 , p2 : un calcul direct arat˘ a c˘ a avem c(t) =

(t − t0 )(t − t2 ) (t − t0 )(t − t1 ) (t − t1 )(t − t2 ) p0 + p1 + p2 . (2.1) (t0 − t1 )(t0 − t2 ) (t1 − t0 )(t1 − t2 ) (t2 − t0 )(t2 − t1 )

Curba c astfel construit˘ a este neted˘a (are clas˘a C ∞ ), fiind polinomial˘a ˆın t. Ea verific˘ a ¸si condit¸iile de interpolare a punctelor date p0 , p1 ¸si p2 , reprezentˆand o solut¸ie a problemei date. Metoda indicat˘ a poate fi generalizat˘a cu u¸surint¸˘a pentru cazul n arbitrar, obt¸inˆ and algoritmul lui Aitken ˆın forma general˘a (mai sus acest algoritm a fost prezentat pentru cazul n = 2). Fie, a¸sadar, p0 , p1 , . . . , pn ∈ R2 ¸si t0 < t1 < . . . < tn numere reale. Not˘am p0i := pi ,

∀i = 0, . . . , n. 17

Demonstrat¸i (2.1).

relat¸ia

Pentru r = 1, . . . , n ¸si i = 0, . . . , n − r ¸si t ∈ R fixat se construiesc inductiv, folosind interpolarea afin˘ a, punctele pri (t) :=

ti+r − t r−1 t − ti r−1 p (t) + p (t). ti+r − ti i ti+r − ti i+1

(2.2)

Observat¸ia 2.2 (i) Direct din relat¸iile (2.2) se poate deduce c˘a pentru orice r = 1, . . . , n, i = 0, . . . , n − r este verificat ¸sirul de egalit˘a¸ti

Verificat¸i ¸ sirul de egalit˘ a¸ti al˘ aturat.

0 pri (ti+r ) = pr−1 i+1 (ti+r ) = . . . = pi+r (ti+r ) = pi+r ,

de unde rezult˘ a c˘ a aplicat¸ia t 7→ pri (t) reprezint˘a o curb˘a parametrizat˘a care interpoleaz˘ a punctele pi , pi+1 , . . . , pi+r , astfel ˆıncˆat pri (ti ) = pi , . . . , pri (ti+r ) = pi+r . ˆIn particular, curba c : R → R2 , c(t) := pn0 (t) reprezint˘a o solut¸ie a problemei 2.1. (ii) Curba c poate fi descris˘a algebric folosind polinoamele Lagrange de grad n, care sunt asociate unui sistem de numere reale t0 < t1 < . . . < tn (pentru simplitate aceste numere reale sunt omise din notat¸ia polinoamelor Lagrange, acestea fiind notate cu Ln0 , Ln1 , . . . Lnn ): Qn j=0,j6=i (t − tj ) n Li (t) = Qn , ∀i = 0, . . . , n. j=0,j6=i (ti − tj )

Scriet¸i explicit polinoamele Lagrange de grad 1, apoi pe cele de grad 2.

Inductiv, se poate demonstra c˘a avem pentru orice t ∈ R relat¸ia c(t) =

n X

Lni (t)pi .

i=0

(iii) Curba c construit˘ a mai sus are proprietatea de invariant¸˘ a afin˘ a. Astfel, dac˘ a p0 , p1 , . . . , pn este un poligon de control, c curba dat˘a de algoritmul lui Aitken ¸si ϕ : R2 → R2 o transformare afin˘a, atunci curba ϕ ◦ c interpoleaz˘a punctele ϕ(p0 ), ϕ(p1 ), . . . , ϕ(pn ). (iv) ˆIn general, punctele curbei c(t) nu sunt situate, pentru t ∈ [t0 , tn ] ˆın acoperirea convex˘ a a mult¸imii de puncte p0 , p1 , . . . , pn . De asemenea, mici variat¸ii ale unuia dintre punctele poligonului de control pot duce la variat¸ii mari ale acesteia.

18

Demonstrat¸i afirmat¸ia (iii), relat¸ia Pn folosind Ln i (t) = 1. i=0

Capitolul 3

Curbe B´ ezier Am v˘ azut ˆın capitolul anterior cum, dat un poligon de control (p0 , p1 , . . . , pn ), putem construi o curb˘ a polinomial˘a care s˘a interpoleze aceste puncte. Pe de alt˘ a parte, unele propriet˘ a¸ti ale acestui tip de curbe (de exemplu, faptul c˘a nu sunt incluse ˆın acoperirea convex˘a a punctelor poligonului de control) fac ca acestea s˘ a nu fie practice ˆın aplicat¸ii legate de grafica pe calculator. ˆIn anii ’60, independent unul de cel˘ alalt, Paul de Casteljau ¸si Pierre B´ezier au investigat o alt˘ a clas˘ a de curbe, care, chiar dac˘a nu au proprietatea de interpolare, au alte propriet˘ a¸ti geometrice remarcabile ¸si care mai ales, s-au dovedit a fi foarte utile ˆın inginerie ¸si, ulterior, ˆın CAGD: curbele B´ezier. La fel ca ¸si curbele de interpolare, curbele B´ezier pot fi construite folosind fie metode de natur˘a geometric˘ a (algoritmul de Casteljau), fie utilizˆand un aparat algebric (forma Bernstein).

3.1

Algoritmul de Casteljau

Observat¸ia 3.1 Fie p0 , p1 , p2 trei puncte distincte pe o parabol˘a. Presupunem c˘ a tangenta la parabol˘ a dus˘ a prin pi intersecteaz˘a tangenta la parabol˘a prin pj ˆın punctul pij (i, j = 0, 1, 2, i 6= j). Atunci au loc egalit˘a¸tile

Demonstrat¸ia se face alegˆ and un reper ˆın care parabola s˘ a aib˘ a o ecuat¸ie cˆ at mai convenabil˘ a.

r(p0 , p01 , p02 ) = r(p01 , p1 , p12 ) = r(p02 , p12 , p2 ). Reciproca acestei observat¸ii este util˘a pentru construirea punctelor unei parabole cˆ and se dau dou˘ a puncte ale acesteia ¸si tangentele la parabol˘a duse prin aceste puncte. Algoritmul de Casteljau pentru cazul n = 2 Fie b0 , b1 ¸si b2 trei puncte necoliniare. Pentru t ∈ R se construiesc punctele b10 (t) = (1 − t)b0 + tb1 , b11 (t) = (1 − t)b1 + tb2 , b20 (t) = (1 − t)b10 (t) + tb11 (t). and t variaz˘a ˆın R, o parabol˘a, mai precis parabola care Punctul b20 (t) descrie, cˆ trece prin punctele b0 ¸si b2 ¸si ale c˘arei tangente ˆın aceste puncte sunt dreptele b0 b1 , respectiv b2 b1 . Pentru t ∈ [0, 1] se obt¸ine arcul acestei parabole care une¸ste punctele b0 ¸si b2 .

19

Calculat¸i rapoartele r(b0 , b10 (t), b1 ) ¸ si 1 r(b1 , b1 (t), b2 ).

Exemplul 3.2 Consider˘ am punctele b0 = (0, 6), Pentru t =

1 3

b1 = (6, 6),

b2 = (6, 0).

avem

Ce puncte se obt¸in pentru t = 0, respectiv t = 1?

  2 1 1 b10 = b0 + b1 = (2, 6), 3 3 3   2 1 1 = b1 + b2 = (6, 4), b11 3 3 3     1 2 1 1 1 10 16 2 b0 = b0 + b1 = , . 3 3 3 3 3

Exercit¸iul 3.3 Consider˘ am punctele b0 = (2, 4), b1 = (4, 2) ¸si b2 = (4, 0). Calculat¸i punctele b10 (t), b11 (t) ¸si b20 (t) corespunz˘atoare valorilor t = 21 ¸si t = 41 . Algoritmul de Casteljau, forma general˘ a Fie b0 , b1 , . . . , bn ∈ Rm . Pentru t ∈ R se noteaz˘a b0i (t) := bi (i = 0, . . . , n) ¸si se definesc punctele  r = 1, . . . , n r−1 r−1 r bi (t) := (1 − t)bi (t) + tbi+1 (t), (3.1) i = 0, . . . , n − r

Scriet¸i explicit aceste relat¸ii pentru n = 3.

Definit¸ia 3.4 Punctul bn0 (t) descrie, cˆand t variaz˘a, o curb˘a, notat˘a cu bn . Punctele b0 , b1 , . . . , bn se numesc puncte de control ale curbei bn , iar poligonul determinat de acestea se nume¸ste poligon de control. Observat¸ia 3.5 Punctele intermediare pot fi scrise ˆıntr-un tablou triunghiular, numit schem˘ a de Casteljau. Consider˘am, de exemplu, n = 2 ¸si fix˘am t0 ∈ [0, 1]. Schema de Casteljau corespunz˘atoare are forma b0 b1 b2

b10 (t0 ) b11 (t0 ) b20 (t0 )

(3.2)

Analog, ˆın cazul n = 3 ¸si pentru t0 ∈ [0, 1] fixat, schema asociat˘a este b0 b1 b2 b3

b10 (t0 ) b11 (t0 ) b20 (t0 ) b12 (t0 ) b21 (t0 ) b30 (t0 ).

(3.3)

Exemplul 3.6 (i) Schema de Casteljau corespunz˘atoare punctelor b0 , b1 , b2 din exemplul 3.2 ¸si valorii t0 = 31 este (0, 6) (6, 6) (6, 0)

(2, 6) (6, 4)

16 ( 10 3 , 3 ).

(ii) Consider˘ am punctele b0 = (1, −2),

b1 = (3, 2),

b2 = (3, −2),

b3 = (−3, −2).

Schema de Casteljau corespunz˘atoare acestor puncte ¸si valorii t0 = metrului este (1, −2) (3, 2) (2, 0) (3, −2) (3, 0) ( 25 , 0) (−3, −2) (0, −2) ( 32 , −1) (2, − 12 ). 20

1 2

a para-

Scriet¸i schema de Casteljau corespunz˘ atoare acelora¸ si puncte ¸ si 1 valorii t = 2 .

Exercit¸iul 3.7 Scriet¸i schema de Casteljau corespunz˘atoare punctelor b0 = (0, 0),

b1 = (0, 6),

b2 = (6, 6),

b3 = (12, 0)

¸si parametrului t0 = 31 .

3.2

Forma Bernstein a curbelor B´ ezier

Definit¸ia 3.8 Pentru n ∈ N fixat, polinoamele Bernstein de grad n sunt definite prin Bin (t) = Cni ti (1 − t)n−i , i ∈ {0, . . . , n}, unde Cni =

n! i!(n−i)! .

Prin convent¸ie, definim Bin (t) = 0, dac˘a i 6∈ {0, . . . , n}.

Exemplul 3.9 ˆIn cazul n = 1 polinoamele Bernstein sunt B01 (t) = 1 − t,

B11 (t) = t,

iar polinoamele Bernstein de grad 2 sunt B02 (t) = (1 − t)2 ,

B12 (t) = 2t(1 − t),

Scriet¸i explicit polinoamele Bernstein de grad 3.

B22 (t) = t2 .

Observat¸ia 3.10 ˆIn general, vom considera restrict¸ia funct¸iilor polinomiale asociate polinoamelor Bernstein (prin abuz de limbaj, a polinoamelor Bernstein), pe intervalul [0, 1]. Pentru un interval arbitrar [a, b] polinoamele Bernstein asociate se definesc prin [a,b],n Bi (u)

[a,b],n

i.e. Bi

(u) = Bin



=

u−a b−a

Cni 



u−a b−a

i 

b−u b−a

n−i ,

u ∈ [a, b],

, pentru orice u ∈ [a, b].

Propozit¸ia 3.11 (Propriet˘ a¸ti ale polinoamelor Bernstein) (i) Polinoamele Bernstein sunt nenegative pe intervalul [0, 1]. (ii) Pentru orice num˘ ar natural n, polinoamele Bernstein de grad n formeaz˘a o partit¸ie a unit˘ a¸tii n X Bin (t) = 1. i=0

(iii) Polinoamele Bernstein verific˘a relat¸ia de recurent¸˘a n−1 Bin (t) = (1 − t)Bin−1 (t) + tBi−1 (t).

(3.4)

(iv) B0n (0) = 1, Bin (0) = 0 pentru i 6= 0, respectiv Bnn (1) = 1, Bin (1) = 0 pentru i 6= n. (v) Funct¸ia Bin are pe intervalul [0, 1] un punct de maxim pentru t =

i n.

Definit¸ia 3.12 Fie (b0 , . . . , bn ) o mult¸ime ordonat˘a de puncte din Rm , numit˘a poligon de control. Curba B´ ezier b : [0, 1] → Rm definit˘a de poligonul de control (b0 , . . . , bn ) este dat˘a de formula b(t) :=

n X i=0

21

Bin (t)bi .

De ce este a Pn important˘ relat¸ia Bin (t) = i=0 1?

Exemplul 3.13 Consider˘ am poligonul de control b0 = (1, 0),

b1 = (1, 1),

b2 = (0, 2).

Curba B´ezier asociat˘ a b : [0, 1] → R2 se scrie sub forma Bernstein b(t) =

2 X

Bi2 (t)bi = (1 − t)2 (1, 0) + 2t(1 − t)(1, 1) + t2 (0, 2) =

i=0

(1 − 2t + t2 + 2t − 2t2 , 2t − 2t2 + 2t2 ) = (1 − t2 , 2t). 1 Avem, de exemplu, b( 31 ) = ( 98 , 23 ), b( 41 ) = ( 15 16 , 2 ), etc. 3 Stabilim, ˆın continuare, dac˘a punctul ( 4 , 1) apart¸ine imaginii lui b. Aceasta este echivalent cu a g˘ asi t0 ∈ [0, 1] pentru care b(t0 ) = ( 43 , 1), deci  1 − t20 = 43 (3.5) 2t0 = 1

Calculat¸i b(0), b(1) ¸ si precizat¸i dac˘ a punctul b1 apart¸ine curbei.

Cum sistemul (3.5) admite solut¸ia t0 = 21 , deducem c˘a ( 34 , 1) ∈ Im b, mai precis, ( 34 , 1) = b( 21 ). Exercit¸iul 3.14 Consider˘ am poligonul de control b0 = (1, 1),

b2 = (2, 0),

b3 = (0, 0)

¸si fie b : [0, 1] → R2 curba B´ezier asociat˘a. Calculat¸i b( 31 ) ¸si stabilit¸i dac˘a punctul (1, 13 ) apart¸ine imaginii lui b. Observat¸ia 3.15 Polinoamele Bernstein de grad n, B0n , . . . , Bnn , formeaz˘a o baz˘ a a spat¸iului vectorial al polinoamelor de grad mai mic sau egal cu n. ˆIn particular, orice curb˘ a polinomial˘a de grad n poate fi scris˘a sub forma unei curbe B´ezier. Exemplul 3.16 ˆIn spat¸iul vectorial al polinoamelor de grad mai mic sau egal cu 2 avem egalit˘ a¸tile t2 = B22 (t),

t=

1 2 B (t) + B22 (t), 2 1

1 = B02 (t) + B12 (t) + B22 (t).

Fie acum curba polinomial˘ a c(t) = (2t + 3t2 , 1 − 2t + t2 ) = (0, 1) · 1 + (2, −2) · t + (3, 1) · t2 . Folosind relat¸iile de mai sus, deducem c(t) = (B12 (t) + 5B22 (t), B02 (t)) = B02 (t)(0, 1) + B12 (t)(1, 0) + B22 (t)(5, 0), deci c este curba B´ezier asociat˘a poligonului de control dat de punctele b0 = (0, 1), b1 = (1, 0), b2 = (5, 0). Exercit¸iul 3.17 Stabilit¸i c˘ arui poligon de control ˆıi corespunde curba polinomial˘ a c : [0, 1] → R2 , c(t) = (2 − 4t + t2 , 2 − 2t + 2t2 ). Exemplul 3.18 (i) Curba B´ezier asociat˘a unui sistem de dou˘a puncte distincte b0 , b1 are ca imagine geometric˘a segmentul de dreapt˘a determinat de acestea. (ii) Dac˘ a punctele de control b0 , b1 , b2 sunt coliniare, cu b1 situat ˆıntre b0 ¸si b2 , atunci curba B´ezier asociat˘a are gradul 1, imaginea sa fiind segmentul [b0 b2 ]. 22

Indicat¸i ¸ si alte baze ale acestui spat¸iu de polinoame.

Teorema 3.19 (Leg˘ atura dintre forma Bernstein ¸si algoritmul de Casteljau) Fie (b0 , . . . , bn ) un poligon de control din Rm . Atunci: (i) Curba B´ezier bn construit˘a cu algoritmul de Casteljau poate fi scris˘a sub forma n X bn (t) = Bin (t)bi , i=0 n

deci curba B´ezier b construit˘a cu ajutorul algoritmului de Casteljau coincide cu curba B´ezier b definit˘ a cu ajutorul polinoamelor Bernstein. (ii) Punctele intermediare de Casteljau bri pot fi exprimate prin egalit˘a¸tile bri (t) =

r X

Bjr (t)bi+j ,

∀ r = 0, . . . , n, ∀ i = 0, . . . , n − r,

j=0

ceea ce arat˘ a c˘ a aceste puncte descriu, la rˆandul lor, ni¸ste curbe B´ezier. Mai precis, pentru r fixat ¸si i = 0, . . . , n − r, punctul bri (t) descrie, cˆand t variaz˘a, curba B´ezier asociat˘ a poligonului de control (bi , bi+1 , . . . , bi+r ). (iii) Punctele curbei B´ezier pot fi scrise cu ajutorul punctelor intermediare de Casteljau sub forma b(t) =

n−r X

Bin−r (t)bri (t),

i=0

23

∀ r = 0, . . . , n.

Demonstrat¸i aceast˘ a relat¸ie pentru n = 2.

Capitolul 4

Propriet˘ a¸ti ale curbelor B´ ezier 4.1

Propriet˘ a¸ti elementare

Folosind fie algoritmul de Casteljau, fie forma Bernstein a curbelor B´ezier pot fi deduse imediat urm˘ atoarele propriet˘a¸ti ale acestui tip de curbe: Propozit¸ia 4.1 Fie (b0 , . . . , bn ) un poligon de control din Rm . Curba B´ezier asociat˘ a b : [0, 1] → Rm are urm˘atoarele propriet˘a¸ti: (i) b este o curb˘ a polinomial˘a, avˆand gradul mai mic sau egal cu n; (ii) curba b interpoleaz˘a extremit˘a¸tile poligonului de control, i.e. au loc relat¸iile b(0) = b0 , b(1) = bn ; ˆın particular, dac˘a poligonul de control este ˆınchis, curba B´ezier asociat˘ a este ˆınchis˘a;

Dat¸i exemple de poligoane de control pentru care curba asociat˘ a are gradul exact n, respectiv mai mic decˆ at n.

(iii) proprietatea acoperirii convexe: punctele curbei B´ezier b se afl˘a ˆın acoperirea convex˘ a a punctelor de control; (iv) invariant¸˘ a afin˘ a: dac˘a τ : Rm → Rm este o transformare afin˘a, atunci curba B´ezier asociat˘ a poligonului de control (τ (b0 ), . . . , τ (bn )) este curba τ (b); (v) invariant¸˘ a la combinat¸ii baricentrice: fie (b0 , . . . , bn ), respectiv e0, . . . , b e n ) dou˘ e curbele B´ezier cores(b a poligoane de control ¸si b, respectiv b punz˘ atoare. Pentru orice α ∈ R, curba B´ezier asociat˘a poligonului de control e 0 , . . . , (1 − α)bn + b e n ) este curba (1 − α)b + αb. e ((1 − α)b0 + αb e : [0, 1] → Rm este curba B´ezier asociat˘a poligonului de control (vi) dac˘ ab e (bn , . . . , b0 ), atunci b(t) = b(1 − t), ˆın particular, cele dou˘a curbe au aceea¸si imagine geometric˘ a.

4.2

Ce aplicat¸ii au propriet˘ a¸tile (iv) ¸ si (v)?

Derivatele unei curbe B´ ezier

Definit¸ia 4.2 (i) Operatorul de diferent¸iere ˆın avans ∆ este definit prin ∆bi := bi+1 − bi ,

∀ i = 0, . . . , n − 1.

(ii) Prin convent¸ie ∆0 bi := bi , ∀i = 0, . . . , n, iar pentru r ≥ 2 se define¸ste ∆ bi := ∆r−1 (∆bi ), pentru i = 0, . . . , n − r. r

24

Calculat¸i explicit ∆2 pentru punctele unui poligon de control (b0 , b1 , b2 , b3 ).

Propozit¸ia 4.3 Fie (b0 , . . . , bn ) un poligon de control din Rm ¸si fie b : [0, 1] → Rm curba B´ezier asociat˘ a. Derivatele funct¸iei b sunt date de formulele (k)

b

(t) =

n−k X i=0

 n! k ∆ bi Bin−k (t) (n − k)!

∀ k = 0, . . . , n.

(4.1)

Corolarul 4.4 (i) Derivatele de orice ordin calculate pentru t = 0 ¸si t = 1 depind doar de poligonul de control. Mai mult, b0 (0) = n(b1 − b0 ), b0 (1) = n(bn − bn−1 ), cu alte cuvinte, vectorii tangent¸i la curba B´ezier ˆın punctele −−−− −→

Calculat¸i vectorii b0 (0) ¸ si b0 (1) direct, folosind forma Bernstein.

b0 (respectiv bn ) sunt coliniari ¸si au acela¸si sens cu vectorii b0 b1 (respec−−−− −→

tiv bn−1 bn ). ˆIn cazul ˆın care ace¸sti vectori sunt nenuli, ei reprezint˘a direct¸ia tangentelor la curb˘ a ˆın punctele respective. (ii) Pentru orice t ∈ [0, 1] are loc egalitatea b0 (t) = n(bn−1 (t) − bn−1 (t)), 1 0

Explicat¸i ce devine aceast˘ a afirmat¸ie pentru t=0¸ si t = 1.

cu alte cuvinte, punctele construite ˆın etapa (n − 1) a algoritmului de Casteljau determin˘ a vectorul tangent la curba B´ezier ˆın punctul b(t). Exemplul 4.5 Pentru schema de Casteljau din exemplul 3.6 (ii), vectorul tangent la curb˘ a corespunz˘ ator valorii t = 21 a parametrului este (−3, −3). Exercit¸iul 4.6 Consider˘ am punctele b0 = (4, 2), b1 = (4, 4), b2 = (2, 4) ¸si fie b : [0, 1] → R2 curba B´ezier asociat˘a poligonului de control (b0 , b1 , b2 ). Determinat¸i vectorii tangent¸i la aceast˘a curb˘a ˆın punctele b(0), b( 21 ), b(1). Exercit¸iul 4.7 Dac˘ a punctele b0 , b1 , b2 , b3 sunt vˆarfurile unui p˘atrat, stabilit¸i care este punctul obt¸inut aplicˆand algoritmul de Casteljau pentru valoarea parametrului t = 21 ¸si care este tangenta la curb˘a ˆın acest punct.

4.3

Modificarea unei curbe B´ ezier

(i) Deplasarea unui punct de control e j , bj+1 , . . . , bn ) dou˘a Fie (b0 , . . . , bj−1 , bj , bj+1 , . . . , bn ), respectiv (b0 , . . . , bj−1 , b e curbele B´ezier asociate. Folosind expoligoane de control ¸si fie b, respectiv b primarea ˆın forma Bernstein, deducem c˘a pentru t ∈ [0, 1] avem −−−−−−− −→

−−−− −→

e e − b(t) = B n (t)(b e j − bj ) = B n (t) bj b ej . b(t)b(t)= b(t) j j −−−−−−− −→

−−−− −→

e e j arat˘a c˘a, dac˘a deplas˘am punctul Colinearitatea vectorilor b(t)b(t) ¸si bj b b(t) ˆıntr-o anumit˘ a direct¸ie, fiecare punct al curbei B´ezier se deplaseaz˘a de-a lungul aceleia¸si direct¸ii. Lungimea segmentului parcurs difer˘a ˆıns˘a ˆın funct¸ie de t. ˆIn cazul ˆın care j ∈ {1, . . . , n} extremit˘a¸tile b0 = b(0) ¸si bn = b(1) r˘ amˆ an neschimbate. Curba are cea mai vizibil˘a modificare ˆıntr-o vecin˘atate a punctului b( nj ), deoarece funct¸ia Bjn are un maxim pentru t = nj . Situat¸ia este asem˘ an˘ atoare ˆın cazul ˆın care j ∈ {0, n} (deci modific˘am una dintre extremit˘a¸ti): de exemplu, dac˘ a j = 0, punctul bn r˘amˆane pe loc ¸si curba este afectat˘a cel mai mult ˆın vecin˘ atatea lui b0 . (ii) Inserarea repetat˘ a a unui punct de control Fie (b0 , . . . , bj−1 , bj , bj+1 , . . . , bn ) un poligon de control cu n + 1 puncte de control ¸si b curba B´ezier asociat˘a. Utilizˆand scrierea Bernstein a curbei b, 25

Efectuat¸i calcule explicite ˆın cazul b0 = (0, 0), b1 = (1, 1), b2 = (3, 3),

e b1 = (0, 1).

deducem c˘ a ponderea punctului bj este Bjn (t) = Cnj tj (1 − t)n−j . Inserˆand ˆın mod repetat (de k ori) punctul bj , obt¸inem poligonul cu n + k puncte de control (b0 , . . . , bj−1 , bj , . . . , bj , bj+1 , . . . , bn ). | {z } k ori e asociat˘a, rezult˘a c˘a ponderea punctului bj ˆın curba Considerˆ and curba B´ezier b e e este mai ”aprob este mai mare decˆ at ponderea lui bj ˆın curba b, deci curba b piat˘ a” de bj .

Comparat¸i cele dou˘ a ponderi ˆın cazul k = 2.

Este de ret¸inut faptul c˘ a din punct de vedere al imaginii geometrice cele dou˘a poligoane coincid, ˆıns˘ a privite ca poligoane de control (i.e. ca mult¸imi ordonate de puncte) sunt distincte ¸si, ˆın consecint¸˘a, curbele B´ezier asociate sunt diferite.

4.4

Generarea unei curbe B´ ezier cu poligoane de control diferite (m˘ arirea gradului)

Observat¸ia 4.8 Fie b0 , b1 , b2 puncte coliniare distincte, cu b1 situat ˆıntre b0 ¸si b2 . Curba B´ezier asociat˘ a poligonului de control (b0 , b2 ) este dat˘a prin relat¸ia

Cum verificat¸i dac˘ a b1 este situat ˆıntre b0 sau b2 ?

b(t) = (1 − t)b0 + tb2 , fiind o curb˘ a polinomial˘ a de gradul ˆıntˆai ¸si avˆand ca imagine geometric˘a segmentul [b0 b2 ]. Curba B´ezier asociat˘a poligonului de control (b0 , b1 , b2 ) admite parametrizarea e = (1 − t)2 b0 + 2t(1 − t)b1 + t2 b2 , b(t) fiind o curb˘ a polinomial˘ a de grad cel mult 2. Imaginea sa coincide ˆıns˘a cu imaginea lui b, fiind, la rˆ andul s˘au, egal˘a cu segmentul [b0 b2 ]. Acesta este un exemplu ˆın care poligoane de control diferite genereaz˘a curbe B´ezier cu parametriz˘ ari diferite, dar care au aceea¸si imagine geometric˘a. ˆIn cazul particular ˆın care punctul b1 este mijlocul segmentului [b0 , b2 ] avem   1 1 2 2 2 e b0 + b2 +t2 b2 = b(t) = (1−t) b0 +2t(1−t)b1 +t b2 = (1−t) b0 +2t(1−t) 2 2   = (1 − t)2 + t(1 − t) b0 + t(1 − t) + t2 b2 = (1 − t)b0 + tb2 = b(t). Cu alte cuvinte, pentru aceast˘a alegere particular˘a a lui b1 , coincid atˆat imae ginile geometrice ale celor dou˘a curbe, cˆat ¸si parametriz˘arile b ¸si b. ˆIn general, ne punem problema ˆın ce m˘asur˘a dat un poligon de control ˆıi putem asocia un nou poligon de control avˆand cu un punct ˆın plus ¸si astfel ˆıncˆ at curbele B´ezier asociate celor dou˘a poligoane s˘a coincid˘a. R˘aspunsul este dat de urm˘ atoarea propozit¸ie: Propozit¸ia 4.9 Fie P = (b0 , . . . , bn ) un poligon de control ¸si b curba B´ezier (1) (1) (1) (1) asociat˘ a. Definim poligonul de control P (1) = (b0 , b1 , . . . , bn , bn+1 ) prin (1)

(1)

bi

=

i n+1

b0 = b0 ,  bi−1 + 1 −

(1)

bn+1 = bn ,  i bi , ∀i = 1, . . . , n n+1

¸si not˘ am cu b(1) curba B´ezier asociat˘a. Pentru orice t ∈ [0, 1] are loc egalitatea b(t) = b(1) (t); ˆın particular, imaginile geometrice ale celor dou˘a curbe coincid. Reciproc, singurul poligon de control cu n + 2 puncte care genereaz˘a curba b ¸si care are ca extremit˘ a¸ti punctele b0 ¸si bn este poligonul P (1) . 26

Demonstrat¸i c˘ a mijlocul segmentului [b0 b2 ] este singurul punct cu aceast˘ a proprietate.

Scriet¸i explicit punctele poligonului P (1) pentru n = 1, 2, 3.

Exemplul 4.10 Fie punctele b0 = (−6, 6),

b1 = (0, 6),

b2 = (3, 0).

Cu notat¸iile din propozit¸ia 4.9 avem n = 2 ¸si (1)

b0 = b0 = (−6, 6), (1)

b1 =

2 1 b0 + b1 = (−2, 6); 3 3

(1)

b3 = b2 = (3, 0); (1)

b2 =

1 2 b1 + b2 = (1, 4) 3 3 (1)

(1)

(1)

(1)

¸si poligoanele de control (b0 , b1 , b2 ), respectiv (b0 , b1 , b2 , b3 ) genereaz˘a aceea¸si curb˘ a B´ezier (verificat¸i!). Exercit¸iul 4.11 Consider˘ am punctele b0 = (3, 6), b1 = (9, 6), b2 = (6, 0). G˘ asit¸i un poligon de control format din patru puncte care genereaz˘a aceea¸si curb˘ a B´ezier ca ¸si (b0 , b1 , b2 ). Observat¸ia 4.12 (i) Extremit˘a¸tile poligoanelor de control P ¸si P (1) coincid, (1) (1) iar punctele intermediare ale poligonului P (1) , adic˘a b1 , . . . , bn sunt situate respectiv pe segmentele [b0 b1 ], . . . , [bn−1 bn ] determinate de punctele de control ale poligonului P.

Calculat¸i rapoartele ˆın care punctele (1) b1 , . . . , b(1) ˆımpart n respectivele segmente.

(ii) Aplicˆ and acela¸si procedeu ˆın mod repetat, obt¸inem un ¸sir de poligoane P, P (1) , P (2) , P (3) , . . ., unde P (k+1) = (P (k) )(1) . Acest ¸sir converge la curba B´ezier definit˘ a de toate aceste poligoane, ˆıns˘a convergent¸a este lent˘a ¸si nu are consecint¸e practice. (iii) M˘ arirea gradului este util˘a atunci cˆand avem o familie de curbe B´ezier (date prin poligoanele de control) ¸si dorim ca aceste curbe s˘a fie generate de poligoane cu un acela¸si num˘ ar de puncte: determin˘am poligonul cu cele mai multe puncte (not˘ am cu N num˘ arul acestora) ¸si m˘arim num˘arul punctelor fiec˘arui poligon de control, pˆ an˘ a cˆ and ajunge egal cu N . Din punct de vedere practic, acest procedeu de uniformizare a gradelor este util ˆın generarea suprafet¸elor, unde anumit¸i algoritmi necesit˘a ca date de intrare curbe de acela¸si grad. De asemenea, m˘ arirea gradului poate fi folosit˘a ˆın transferul de date ˆıntre diferite sisteme care lucreaz˘ a numai cu curbe avˆand gradul fixat.

4.5

Subdivizare

Observat¸ia 4.13 Dac˘ a b : [0, 1] → Rm este o curb˘a B´ezier, atunci, pentru orice α ∈ [0, 1] restrict¸iile sale la intervalele [0, α] ¸si [α, 1] sunt curbe polinomiale, ˆın particular, sunt curbe B´ezier. Se pune ˆın mod natural problema g˘asirii poligonului de control care le determin˘a. De exemplu, dac˘a b este segmentul determinat de b0 ¸si b1 , atunci pentru orice α ∈ [0, 1], b|[0,α] este curba B´ezier determinat˘ a de poligonul de control (b0 , b(α)), iar b|[α,1] este asociat˘a poligonului de control (b(α), b1 ). Procesul prin care unei curbe B´ezier i se asociaz˘a dou˘ a arce ale sale a c˘ aror reuniune este curba init¸ial˘a se nume¸ste subdivizare. Propozit¸ia care urmeaz˘ a descrie situat¸ia general˘a: Propozit¸ia 4.14 Fie b curba B´ezier determinat˘a de poligonul de control (b0 , b1 , . . . , bn ). Pentru orice α ∈ [0, 1], restrict¸ia b|[0,α] a lui b la intervalul [0, α] este curba Ce se ˆıntˆampl˘a α=0¸ si α = 1? B´ezier determinat˘ a de poligonul de control (b00 (α), b10 (α), . . . , bn−1 (α), bn0 (α)), 0

27

pentru

iar restrict¸ia b|[α,1] a lui b la intervalul [α, 1] este curba B´ezier determinat˘a de poligonul de control (bn0 (α), bn−1 (α), . . . , b1n−1 (α), b0n (α)), 1 unde b00 (α), b10 (α), . . . , bn−1 (α), bn0 (α), b1n−1 (α), . . . , b1n−1 (α), b0n (α) sunt puncte 0 de Casteljau corespunz˘ atoare valorii α a parametrului; ˆın particular b00 (α) = b0 , n 0 b0 (α) = b(α), bn (α) = bn . Observat¸ia 4.15 Ultima parte a propozit¸iei se bazeaz˘a pe urm˘atoarea afire curbe B´ezier asociate poligoanelor de control (b0 , b1 , . . . , bn ), mat¸ie: fie b ¸si b e e e n ), unde respectiv (b0 , b1 , . . . , b e 0 = bn , b e 1 = bn−1 , . . . , b e n−1 = b1 , b e n = b0 . b ˆIntre punctele de Casteljau asociate au loc relat¸iile: e j (t) = bj (1 − t), b 0 n−j

∀j = 0, . . . , n, t ∈ [0, 1].

Exemplul 4.16 Consider˘ am poligonul de control (b0 , b1 , b2 ) format din punctele b0 = (−4, 0), b1 = (0, 0), b2 = (0, 8) ¸si b : [0, 1] → R2 curba B´ezier asociat˘a. Pentru α = 21 punctele de Casteljau sunt       1 1 1 0 0 0 b0 = b0 = (−4, 0), b1 = b1 = (0, 0), b2 = b2 = (0, 8); 2 2 2       1 1 1 = (−2, 0), b11 = (0, 4), b20 = (−1, 2). b10 2 2 2 Se deduce c˘ a restrict¸ia lui b la intervalul [0, 12 ] este curba B´ezier determinat˘ a de poligonul de control format din punctele (−4, 0), (−2, 0), (−1, 2), iar restrict¸ia lui b la intervalul [ 21 , 1] este curba B´ezier asociat˘a poligonului de control ((−1, 2), (0, 4), (0, 8)). Exercit¸iul 4.17 Fie b0 = (4, 4), b1 = (4, 8), b2 = (0, 4), b3 = (4, 0) ¸si b : [0, 1] → R2 curba B´ezier asociat˘a. G˘asit¸i poligoanele de control care determin˘a curbele B´ezier b|[0, 12 ] ¸si b|[ 12 ,1] . Exercit¸iul 4.18 Fie b0 , b1 , b2 , b3 vˆarfurile unui p˘atrat ¸si b curba B´ezier asociat˘ a. Indicat¸i poligoanele de control care determin˘a curbele B´ezier b|[0, 12 ] ¸si b|[ 12 ,1] . Observat¸ia 4.19 Procesul de subdivizare a unei curbe pentru o valoare a parametrului (de exemplu t = 21 ) poate fi repetat, obt¸inˆand arce de curb˘a din ce ˆın ce mai mici. Acest procedeu este util pentru a stabili dac˘a o dreapt˘a intersecteaz˘a o curb˘ a B´ezier: f˘ ar˘ a a restrˆ ange generalitatea, se poate presupune c˘a dreapta este paralel˘ a cu una din axele de coordonate. Ceea ce se studiaz˘a, de fapt, (¸si este mult mai u¸sor de verificat din punct de vedere practic) este intersect¸ia dreptei cu paralelipipedul minim (minmax box-ul) determinat de poligonul de control care genereaz˘ a curba B´ezier. ˆIn cazul ˆın care dreapta nu intersecteaz˘a acest paralelipiped, atunci ea nu intersecteaz˘a nici curba, ˆın caz contrar, prin subdiviz˘ ari repetate, pot fi aproximate punctele de intersect¸ie ale dreptei date cu curba B´ezier init¸ial˘ a.

28

Scriet¸i ˆın forma Bernstein curbele b, b|[0, 1 ] 2

¸ si b|[ 1 ,1] . 2

Capitolul 5

Cubice spline 5.1

Racordul a dou˘ a arce de curb˘ a B´ ezier

Observat¸ia 5.1 Fie (b0 , b1 , . . . , bn ) un poligon de control din Rm ¸si fie b : [0, 1] → Rm curba B´ezier asociat˘a. Pentru un interval arbitrar [α, β] ⊂ R (α 6= β), definim aplicat¸ia (numit˘a curb˘ a B´ ezier definit˘a pe intervalul [α, β]) b[α,β] : [α, β] → Rm , unde

Ce diferent¸a ˘ este ˆıntre curba b|[0, 1 ] , construit˘ a 2

prin subdivizare ¸ si curba 1 b[0, 2 ] ?

b[α,β] := b ◦ ψ,

u−α ψ : [α, β] → [0, 1] ψ(u) = β−α

Algoritmul de Casteljau poate fi adaptat pentru construirea curbei b[α,β] .

este schimbarea afin˘ a de parametru de la intervalul [α, β] la intervalul [0, 1]. ˆIn cele ce urmeaz˘ a vom renunt¸a la scrierea intervalului de definit¸ie ca indice superior, acest interval rezultˆand din context.

Determinat¸i vectorii tangent¸i la curba nou construit˘ a ˆın capetele sale.

Exemplul 5.2 Consider˘ am poligonul de control (b0 , b1 , b2 ) cu b0 = (0, 0), b1 = (2, 0), b2 = (2, 4). Curba B´ezier asociat˘a definit˘a pe intervalul [0, 1] este b : [0, 1] → R2 ,

b(t) = (4t − 2t2 , 4t2 )

iar curba B´ezier asociat˘ a aceluia¸si poligon, dar definit˘a pe intervalul [2, 4] este e : [2, 4] → R2 , b cu ψ(u) =

u−2 4−2 ,

e b(u) = b ◦ ψ(u),

Curbele b ¸ si e b au aceea¸ si imagine geometric˘ a.

deci 

e b(u) =b

u−2 2



 =

 −u2 + 8u − 12 2 , (u − 2) . 2

Propozit¸ia 5.3 Fie (b0 , . . . , bn−1 , bn ) ¸si (bn , bn+1 , . . . , b2n ) dou˘a poligoane e : [u1 , u2 ] → Rm curbele B´ezier de control ¸si b : [u0 , u1 ] → Rm , respectiv b asociate (u0 < u1 < u2 ; aceast˘a condit¸ie va fi subˆınt¸eleas˘a ˆın cele ce urmeaz˘a). (i) Cele dou˘ a curbe au un racord de clas˘a GC 1 ˆın punctul bn dac˘a ¸si numai dac˘ a punctele bn−1 , bn , bn+1 sunt coliniare. (ii) Cele dou˘ a curbe au un racord de clas˘a C 1 ˆın punctul bn dac˘a ¸si numai dac˘ a punctele bn−1 , bn , bn+1 sunt coliniare ¸si are loc egalitatea de rapoarte r(bn−1 , bn , bn+1 ) = r(u0 , u1 , u2 ). (iii) Cele dou˘ a curbe au un racord de clas˘a C 2 ˆın punctul bn dac˘a ¸si numai dac˘ a sunt verificate condit¸iile: 29

Scriet¸i explicit condit¸iile din aceast˘ a propozit¸ie pentru n = 3.

Demonstrat¸i c˘ a, dac˘ a α, β, γ sunt numere reale, atunci r(α, β, γ) = β−α γ−β .

• punctele bn−1 , bn , bn+1 sunt coliniare ¸si are loc egalitatea de rapoarte r(bn−1 , bn , bn+1 ) = r(u0 , u1 , u2 ); • exist˘ a un punct d cu proprietatea c˘a bn−2 , bn−1 , d, respectiv d, bn+1 , bn+2 sunt triplete de puncte coliniare ¸si, ˆın plus, au loc egalit˘a¸tile r(bn−2 , bn−1 , d) = r(d, bn+1 , bn+2 ) = r(u0 , u1 , u2 ). Punctul d se nume¸ste punct de Boor asociat racordului celor dou˘a curbe. Exemplul 5.4 (i) ˆIn R2 consider˘am punctele b0 = (1, 2), b1 = (1, 4), b2 = (2, 5), b3 = (4, 5), b4 = (6, 3), b5 = (6, 2), b6 = (3, 0); fie, de asemenea, u0 = 2, u1 = 4, u2 = 7. Cum b2 , b3 , b4 nu sunt coliniare, cubicele B´ezier e : [u1 , u2 ] → R2 corespunz˘atoare poligoanelor de control b : [u0 , u1 ] → R2 ¸si b (b0 , b1 , b2 , b3 ), respectiv (b3 , b4 , b5 , b6 ) nu au un racord de clas˘a GC 1 ˆın b3 . (ii) ˆIn R2 consider˘ am punctele b0 = (0, 2), b1 = (1, 3), b2 = (3, 3), b3 = (4, 2), b4 = (6, 0), b5 = (4, −6), b6 = (1, −1). Fie u0 = 1, u1 = 4, u2 = 7. Avem: −−−− −→

−−−− −→

b2 b3 = b3 − b2 = (1, −1),

b2 b4 = b4 − b2 = (3, −3),

−−−− −→

−−−− −→

deci vectorii b2 b3 ¸si b2 b4 sunt liniar dependent¸i, adic˘a punctele b2 , b3 , b4 e : [4, 7] → R2 sunt coliniare; ˆın particular cubicele B´ezier b : [1, 4] → R2 ¸si b asociate poligoanelor de control (b0 , b1 , b2 , b3 ), respectiv (b3 , b4 , b5 , b6 ) au un racord de clas˘ a GC 1 ˆın b3 . Pe de alt˘a parte, −−−− −→

−−−− −→

b2 b3 = b3 − b2 = (1, −1),

b3 b4 = b4 − b3 = (2, −2),

adic˘ a r(b2 , b3 , b4 ) = 21 , iar r(u0 , u1 , u2 ) =

u1 −u0 u2 −u1

= 1, a¸sadar

r(b2 , b3 , b4 ) 6= r(u0 , u1 , u2 ), ceea ce arat˘ a c˘ a racordul nu este de clas˘a C 1 . Alegˆand ˆın schimb u00 = 1, u01 = 4 0 ¸si u2 = 10, avem r(u00 , u01 , u02 ) =

u01 − u00 1 3 = = = r(b2 , b3 , b4 ), u02 − u01 6 2

cu alte cuvinte curbele B´ezier c : [1, 4] → R2 , respectiv e c : [4, 10] → R2 asociate 1 celor dou˘ a poligoane de control au un racord de clas˘a C ˆın b3 . Este de remarcat e ¸si e faptul c˘ a b = c (ca funct¸ii), ˆın vreme ce parametriz˘arile b c au aceea¸si imagine geometric˘ a, dar sunt diferite ca aplicat¸ii. Acest exemplu arat˘a c˘a un racord care are doar continuitate geometric˘a GC 1 poate deveni, prin alegerea convenabil˘a a intervalelor pe care este definit˘a parametrizarea (este suficient s˘a modific˘am unul din capete!) de clas˘ a C 1 . Cu alte cuvinte, continuitatea geometric˘a GC 1 este legat˘ a numai de forma poligonului de control, iar faptul c˘a un racord are clas˘ a C 1 este legat atˆ at de poligonul de control, cˆat ¸si de intervalele pe care sunt definite parametriz˘ arile. S˘ a analiz˘ am ˆın continuare dac˘a acest racord este ¸si de clas˘a C 2 . Pentru aceasta trebuie s˘ a determin˘am punctul d de intersect¸ie a dreptelor b1 b2 ¸si b4 b5 : dreapta b1 b2 are ecuat¸ia implicit˘a x2 = 3, iar dreapta b4 b5 are ecuat¸ia 3x1 − x2 − 18 = 0 ¸si punctul lor de intersect¸ie este d = (7, 3). Avem: −−−− −→

b1 b2 = (2, 0), −−−− −→ db4 =

−−−− −→ b2 d =

(4, 0),

r(b1 , b2 , d) =

1 , 2

−−−− −→

(−1, −3),

b4 b5 = (−2, −6), 30

r(d, b4 , b5 ) =

1 , 2

Justificat¸i de ce punctele b2 , b3 , b4 nu sunt coliniare.

deci au loc egalit˘ a¸tile r(b1 , b2 , d) = r(d, b4 , b5 ) = r(u00 , u01 , u02 ), ceea ce arat˘ a c˘ a racordul curbelor c ¸si e c este de clas˘a C 2 . Dac˘ a raportul r(b1 , b2 , d) (respectiv r(d, b4 , b5 )) nu ar fi fost egal cu 21 , am fi putut modifica punctul b1 pe dreapta b2 d (respectiv punctul b5 pe dreapta db4 ), astfel ca raportul respectiv s˘a fie 12 ; altfel spus, prin modificarea poligonului de control se poate obt¸ine un racord de clas˘a C 2 .

ˆ In ce situat¸ie nu poate fi obt¸inut, nici dup˘ a modificarea intervalelor, un racord de clas˘ a C2 ?

Exercit¸iul 5.5 ˆIn R2 consider˘am punctele b0 = (0, 0),

b1 = (2, 2),

b4 = (5, 1),

b2 = (2, 4),

b3 = (3, 3),

b6 = (2, −1)

b5 = (4, 0),

¸si numerele reale u0 = 0,

u1 = 1,

u2 = 3.

e : [1, 3] → R2 curbele B´ezier asociate. Stabilit¸i ce clas˘a Fie b : [0, 1] → R2 ¸si b are racordul celor dou˘ a curbe ˆın punctul b3 . ˆ Intrebare: Ce date sunt necesare pentru a putea construi dou˘a cubice B´ezier care au un racord de clas˘ a C 1 ? Dar un racord de clas˘a C 2 ? Exemplul 5.6 Consider˘ am punctele: b0 = (1, 1),

b1 = (2, 2),

b5 = (3, −3),

d = (6, 2),

b6 = (1, −3)

¸si numerele reale u0 = 0,

u1 = 1,

u2 = 2.

Pornind de la aceste date putem construi poligoane de control (b0 , b1 , b2 , b3 ) ¸si e definite pe intervalele (b3 , b4 , b5 , b6 ) astfel ˆıncˆ at curbele B´ezier asociate b ¸si b 2 [0, 1], respectiv [1, 2] s˘ a aib˘ a un racord de clas˘a C . Mai ˆıntˆai s˘a observ˘am c˘a avem u1 − u0 = 1. r(u0 , u1 , u2 ) = u2 − u1 Punctele b2 , b3 , b4 le determin˘am din condit¸iile r(b1 , b2 , d) = r(d, b4 , b5 ) = r(b2 , b3 , b4 ) = r(u0 , u1 , u2 ) = 1, 1 1 b1 + d, 2 2 Concret, obt¸inem b2 =

b4 =

1 1 d + b5 , 2 2

 b2 = (4, 2),

b4 =

9 1 ,− 2 2

b3 =

1 1 b2 + b4 : 2 2



 ,

b3 =

17 3 , 4 4

 .

Exercit¸iul 5.7 Consider˘ am punctele: b0 = (0, 2),

b1 = (0, 4),

d = (4, 2),

b5 = (4, −2),

b6 = (0, −3)

¸si numerele reale u0 = 1,

u1 = 2,

u2 = 3.

Determinat¸i poligoanele de control (b0 , b1 , b2 , b3 ) ¸si (b3 , b4 , b5 , b6 ) astfel ˆıncˆat e definite pe intervalele [1, 2], respectiv [2, 3] s˘a aib˘a curbele B´ezier asociate b ¸si b 2 un racord de clas˘ aC . 31

Dac˘ a A, P, B sunt puncte coliniare cu r(A, P, B) = r 6= −1, avem r 1 P = r+1 A + r+1 B.

5.2

Cubice spline

Definit¸ia 5.8 O cubic˘ a spline este o curb˘a polinomial˘a pe port¸iuni obt¸inut˘a prin racord de clas˘ a C 2 al unui num˘ar finit de cubice B´ezier. Exemplul 5.9 (i) Aplicat¸ia γ : [1, 10] → R2 definit˘a prin  c(t), dac˘a t ∈ [1, 4] γ(t) = e c(t), dac˘a t ∈ [4, 10], unde c ¸si e c sunt curbele din exemplul 5.4, este o cubic˘a spline.

Stabilit¸i dac˘ a b ¸ si e b din exercit¸iul 5.5 dau na¸ stere unei cubice spline.

(ii) Aplicat¸ia γ : [0, 2] → R2 definit˘a prin  b(t), dac˘a t ∈ [0, 1] γ(t) = e b(t), dac˘a t ∈ [1, 2], e sunt curbele din exemplul 5.6, este o cubic˘a spline. unde b ¸si b Problem˘ a: Ce date sunt suficiente pentru a construi o cubic˘a spline? Observat¸ia 5.10 (i) O cubic˘a spline este o aplicat¸ie γ : [u0 , uL ] → Rm cu proprietatea c˘ a exist˘ a o diviziune u0 < u1 < . . . < uL a intervalului [u0 , uL ] astfel ca γ|[uj ,uj+1 ] s˘ a fie cubic˘a B´ezier pentru orice j ∈ {0, . . . , L} ¸si aplicat¸ia γ s˘ a fie de clas˘ a C 2 ˆın fiecare nod uj (j = 1, . . . , L − 1). (ii) Aplicˆ and direct definit¸ia, rezult˘a c˘a obiectele necesare pentru a putea construi o cubic˘ a spline sunt urm˘atoarele: • un interval [u0 , uL ] ¸si o diviziune u0 < u1 < . . . < uL a acestuia;

Scriet¸i explicit aceste condit¸ii pentru L = 2 ¸ si L = 3.

• un ¸sir de poligoane de control (b0 , b1 , b2 , b3 ), (b3 , b4 , b5 , b6 ), . . . , (b3j , b3j+1 , b3j+2 , b3j+3 ), . . . , (b3L−3 , b3L−2 , b3L−1 , b3L ) astfel ca: − pentru orice j ∈ {1, . . . , L − 1} punctele b3j−1 , b3j , b3j+1 sunt coliniare ¸si r(b3j−1 , b3j , b3j+1 ) = r(uj−1 , uj , uj+1 ); − pentru orice j ∈ {1, . . . , L − 1} exist˘a un punct dj (numit punct de Boor) astfel ca b3j−2 , b3j−1 , dj , respectiv dj , b3j+1 , b3j+2 s˘a fie coliniare ¸si r(b3j−2 , b3j−1 , dj ) = r(dj , b3j+1 , b3j+2 ) = r(uj−1 , uj , uj+1 ).

(iii) S˘ a fix˘ am acum un nod uj (j ∈ {2, . . . , L − 1}). Avem, a¸sadar, r(dj−1 , b3j−2 , b3j−1 ) = r(uj−2 , uj−1 , uj ); r(b3j−2 , b3j−1 , dj ) = r(uj−1 , uj , uj+1 ). Utilizˆ and lema 5.11, deducem: r(dj−1 , b3j−2 , dj ) =

uj−1 − uj−2 , uj+1 − uj−1

r(dj−1 , b3j−1 , dj ) =

uj − uj−2 . uj+1 − uj

(5.1)

Relat¸iile (5.1) arat˘ a c˘ a putem determina punctele B´ezier b3j−2 ¸si b3j−1 ˆın funct¸ie de punctele de Boor dj−1 ¸si dj ; mai precis avem b3j−2 =

uj+1 − uj−1 uj−1 − uj−2 dj−1 + dj , uj+1 − uj−2 uj+1 − uj−2

(5.2)

b3j−1 =

uj+1 − uj uj − uj−2 dj−1 + dj . uj+1 − uj−2 uj+1 − uj−2

(5.3)

32

Deducet¸i relat¸iile (5.2) ¸ si (5.3) din egalit˘ a¸tile (5.1).

Lema 5.11 Fie A, P, Q, B puncte coliniare din Rm , cu A 6= B ¸si P, Q ∈ (AB). Not˘ am r1 = r(A, P, Q), r2 = r(P, Q, B).

Demonstrat¸i aceast˘ a lem˘ a ˆın cazul m = 1.

Avem urm˘ atoarele relat¸ii: r(A, P, B) =

r1 r2 , r2 + 1

r(A, Q, B) = r2 (r1 + 1).

Teorema 5.12 (Algoritmul Boehm-de Boor) O mult¸ime ordonat˘a P de L + 3 puncte (d−1 , d0 , d1 , . . . , dL+1 ) ¸si un ¸sir de numere reale u0 < u1 < . . . < uL definesc o cubic˘ a spline. Mult¸imea P se nume¸ste poligon de Boor al cubicei spline. Demonstrat¸ie. Preciz˘ am modul ˆın care se construiesc punctele poligoanelor de control (b0 , b1 , b2 , b3 ), (b3 , b4 , b5 , b6 ), . . . , (b3j , b3j+1 , b3j+2 , b3j+3 ), . . . , (b3L−3 , b3L−2 , b3L−1 , b3L ) care definesc arcele de curb˘a B´ezier ce formeaz˘a cubica spline. • Punctele b0 , b1 , b3L−1 , b3L se aleg astfel: b0 := d−1 ,

b1 := d0 ,

b3L−1 := dL ,

b3L := dL+1 .

• Punctele b2 ¸si b3L−2 se construiesc pornind de la relat¸iile r(b1 , b2 , d1 ) = r(u0 , u1 , u2 ), respectiv r(dL−1 , b3L−2 , b3L−1 ) = r(uL−2 , uL−1 , uL ), a¸sadar b2 =

u2 − u1 u1 − u0 d0 + d1 , u2 − u0 u2 − u0

b3L−2 =

uL − uL−1 uL−1 − uL−2 dL−1 + dL . uL − uL−2 uL − uL−2

• Punctele b4 , b5 , . . . , b3j−2 , b3j−1 , . . . , b3L−5 , b3L−4 se construiesc folosind ecuat¸iile (5.2), respectiv (5.3). • Punctele b3 , b6 , . . . , b3j , . . . , b3L−3 se obt¸in folosind egalitatea de rapoarte r(b3j−1 , b3j , b3j+1 ) = r(uj−1 , uj , uj+1 ), adic˘a b3j =

uj+1 − uj uj − uj−1 b3j−1 + b3j+1 , uj+1 − uj−1 uj+1 − uj−1

j = 1, . . . , L − 1,

ceea ce ˆıncheie demonstrat¸ia. Observat¸ia 5.13 S ¸ irul punctelor de diviziune ale intervalului [u0 , uL ] poate fi ales astfel ˆıncˆ at s˘ a reflecte propriet˘a¸ti geometrice ale poligonului de Boor. Spre exemplu, prin metoda lungimii coardei: −−−− −→

u0 = 0,

u1 = k d−1 d1 k,

−−−−−−− −→

uj = uj−1 + k dj−1 dj k, uL = uL−1 + k

j = 2, . . . , L − 1,

−−−−−−−−−− −→ dL−1 dL+1

k

diviziunea este aleas˘ a astfel ca lungimea intervalului [uj−1 uj ] s˘a fie egal˘a cu lungimea segmentului [dj−1 dj ] (pentru j = 2, . . . , L − 1). 33

Scriet¸i explicit aceast˘ a demonstrat¸ie pentru L=2¸ si L = 3.

Exemplul 5.14 Consider˘ am numerele reale u0 = 0,

u1 = 1,

u2 = 2,

u3 = 4

(L = 3).

Fie poligonul de Boor (d−1 , d0 , . . . , d4 ) fixat. Conform algoritmului Boehm-de Boor definim b0 := d−1 , b1 := d0 , b8 := d3 , b9 := d4 . Mai departe, avem b2 =

u2 − u1 u1 − u0 1 1 d0 + d1 = d0 + d1 ; u2 − u0 u2 − u0 2 2

b7 =

2 1 d2 + d3 . 3 3

Conform aceluia¸si algoritm b4 = b3·2−2 = b5 =

1 1 d1 + d2 , 2 2

u1 − u0 3 1 u3 − u1 d1 + d2 = d1 + d2 u3 − u0 u3 − u0 4 4 b3 =

1 1 b2 + b4 , 2 2

34

b6 =

2 1 b5 + b7 . 3 3

Capitolul 6

Curbe B´ ezier rat¸ionale S˘ a consider˘ am aplicat¸ia de proiect¸ie central˘a pe planul L de ecuat¸ie x3 = 1   x1 x2 , ,1 . πc : R3 \ {x | x3 = 0} → L, πc (x1 , x2 , x3 ) = x3 x3 Identificˆ and ˆın mod natural acest plan cu R2 , obt¸inem o aplicat¸ie   x1 x2 π : R3 \ {x | x3 = 0} → L, π(x1 , x2 , x3 ) = , . x3 x3

Comparat¸i pozit¸ia relativ˘ a a dreptelor {(α + 1, α − 1, α)|α ∈ R} ¸ si {(β, −β, β − 1)|β ∈ R} precum ¸ si pozit¸ia relativ˘ a a imaginilor lor prin π.

Propozit¸ia 6.1 Fie (a0 , a1 , a2 ) un poligon de control din R3 ¸si fie mai departe P2 a : [0, 1] → R3 , a(t) = i=0 ai Bi2 (t) curba B´ezier asociat˘a. Presupunem c˘a niciunul din cele trei puncte de control nu este situat ˆın planul de ecuat¸ie x3 = 0 ¸si c˘ a nici curba a nu intersecteaz˘a acest plan. Scriem ai = (x1 (ai ), x2 (ai ), λi ) (i = 0, 1, 2) ¸si definim punctele   x1 (ai ) x2 (ai ) , = π(ai ) ∈ R2 , i = 0, 1, 2. bi := λi λi Imaginea curbei a prin aplicat¸ia π este curba P2 λi bi Bi2 (t) 2 r : [0, 1] → R , r(t) = Pi=0 . 2 2 j=0 λj Bj (t) 2 Definit P2 ¸ia 6.2 Fie b0 , b1 , b2 puncte din R , λ0 , λ1 , λ2 ∈ R numere reale, astfel ca j=0 λj Bj2 (t) 6= 0 pe intervalul [0, 1]. Curba

r : [0, 1] → R2 ,

r(t) =

2 X i=0

λi Bi2 (t) bi P2 2 j=0 λj Bj (t)

se nume¸ste curb˘ a B´ ezier rat¸ional p˘ atratic˘ a (CBRP). Punctele b0 , b1 , b2 se numesc puncte de control ale curbei, iar numerele λ0 , λ1 , λ2 se numesc ponderi ale punctelor de control bi . Exemplul 6.3 Consider˘ am punctele b0 = (0, 0),

b1 = (0, 1),

b2 = (1, 0)

¸si numerele reale λ0 = 1,

λ1 = 1, 35

λ2 = 2.

Avem r(t) = π(a(t)), ¸tinˆ and cont de notat¸iile introduse, deducem cu u¸ surint¸˘ a relat¸ia din enunt¸.

Avem

2 X

λj Bj2 (t) = 1 + t2 ,

j=0

iar CBRP asociat˘ a este 

r : [0, 1] → R2 ,

r(t) =

2

2t(1 − t) 2t , 2 1+t 1 + t2

 .

Determinat¸i punctele de intersect¸ie dintre curba b ¸ si curba r ¸ si comparat¸i imaginile lor geometrice.

(Curba B´ezier asociat˘ a acestui poligon de control este b(t) = (t2 , 2t − 2t2 ).) Poligonul de control init¸ial este dat de punctele a0 = (0, 0, 1),

a1 = (0, 1, 1),

a2 = (2, 0, 2).

Exercit¸iul 6.4 Determinat¸i CBRP asociat˘a datelor b0 = (2, 0), λ0 = 2,

b1 = (0, 0), λ1 = 1,

b2 = (0, 1); λ2 = 1

¸si precizat¸i punctele poligonului de control (a0 , a1 , a2 ) din care se obt¸in aceste date. Exercit ¸iul 26.5 Putet  ¸i determina o curb˘a B´ezier rat¸ional p˘atratic˘a r astfel ca 2t r(t) = 1−t , oricare ar fi t ∈ [0, 1]? ˆIn caz afirmativ, care este poligonul 1+t2 1+t2 de control din R3 init¸ial? Propozit¸ia 6.6 Fie r o curb˘a B´ezier rat¸ional p˘atratic˘a definit˘a de datele init¸iale (bi , λi ) i = 0, 1, 2. (i) ˆIn cazul ˆın care cele trei ponderi au aceea¸si valoare, λ 6= 0, (i.e. punctele a0 , a1 ¸si a2 sunt situate ˆın planul x3 = λ), atunci CBRP asociat˘a r este o curb˘a P2 B´ezier r(t) = i=0 Bi2 (t)bi . (ii) Au loc relat¸iile r(0) = b0 , r(1) = b2 , deci CBRP considerat˘ a interpoleaz˘a punctele de extrem. (iii) Au loc egalit˘ a¸tile 2λ1 r0 (1) = (b2 − b1 ), λ2

2λ1 (b1 − b0 ), r0 (0) = λ0

ˆ In propriet˘ a¸tile (ii) ¸ si (iii) se folose¸ ste faptul c˘ a ponderile extreme sunt nenule. Acest fapt P2 rezult˘a2 din condit¸ia λj Bj (t) 6= 0 pe j=0

intervalul [0, 1].

cu alte cuvinte tangentele ˆın punctele extreme sunt direct¸ionate de vectorii −−−− −→

−−−− −→

b0 b1 , respectiv b1 b2 (iv) Dac˘ a ponderile sunt strict pozitive, atunci CBRP este inclus˘a ˆın ˆınf˘a¸sur˘atoarea convex˘ a a punctelor de control. Observat¸ia 6.7 Convenind c˘a punctele de forma ( xx31 , xx23 ) cu x3 = 0 sunt situate la infinit, putem extinde definit¸ia unei CBRP, cerˆand ca ponderile Pdoar 2 λ0 , λ1 , λ2 s˘ a nu fie toate nule, dar acceptˆand ca expresia j=0 λj Bj2 (t) s˘a se anuleze pe intervalul [0, 1]. Fiind un polinom de grad cel mult doi nenul (deoarece ponderile nu sunt toate nule), va avea cel mult dou˘a r˘ad˘acini ˆın acest interval, deci CBRP obt¸inut˘a va avea cel mult dou˘a puncte la infinit. Propozit¸ia 6.8 O curb˘ a B´ezier rat¸ional p˘atratic˘a este un arc de conic˘a. Mai precis, fie CBRP definit˘ a de datele (bi , λi ), i = 0, 1, 2. Atunci: • dac˘ a λλ0 λ2 2 > 1, curba este un arc de elips˘a, 1

• dac˘ a

λ0 λ2 λ21

= 1, curba este un arc de parabol˘a,

• dac˘ a

λ0 λ2 λ21

< 1, curba este un arc de hiperbol˘a. 36

Este posibil ca o CBRP s˘ a fie inclus˘ a ˆıntr-o conic˘ a degenerat˘ a?

Exemplul 6.9 Sistemul de ponderi (1, 1, 2) conduce la un arc de elips˘a, oricare ar fi poligonul de control init¸ial, ˆın vreme ce cu ponderile (2, 3, 2) se ajunge la arce de hiperbol˘ a. Propozit¸ia 6.10 Fie r o CBRP definit˘a de (b0 , b1 , b2 , λ0 , λ1 , λ2 ). Dac˘a λ2 λ0 > 0, exist˘ a o schimbare de parametru ϕ astfel r ◦ ϕ s˘a fie o conic˘a definit˘a de acela¸si poligon de control ¸si de ponderile (1, λ1 , 1). O parametrizare a unui arc de conic˘ a definit˘ a de un sistem de date de forma (b0 , b1 , b2 , 1, λ1 , 1) se nume¸ste parametrizare standard. Tipul conicei este dat de ponderea λ1 : • dac˘ a λ1 < 1 conica este elips˘a; • dac˘ a λ1 = 1 conica este parabol˘a; • dac˘ a λ1 > 1 conica este hiperbol˘a. Propozit¸ia 6.11 Datele init¸iale (b0 , b1 , b2 , 1, λ1 , 1) definesc un arc de cerc tangent poligonului de control ˆın punctele b0 ¸si b2 ¸si situat ˆın acoperirea convex˘a a punctelor poligonului de control dac˘a ¸si numai dac˘a sunt verificate condit¸iile −−−− −→

−−−− −→

(i) k b0 b2 k = k b1 b2 k (cu alte cuvinte triunghiul b0 b1 b2 este isoscel cu [b1 b0 ] ≡ [b1 b2 ]) ¸si (ii) λ1 = cos(b1d b0 b2 ). Corolarul 6.12 Parametrizarea arcului de cerc situat ˆın interiorul poligonului de control (b0 , b1 , b2 ) care are extremit˘a¸tile b0 respectiv b2 este dat˘a de r(t) =

B02 (t)b0 + cos θB12 (t)b1 + B22 (t)b2 , B02 (t) + cos θB12 (t) + B22 (t)

t ∈ [0, 1],

unde θ = m(b1d b0 b2 ). Centrul cercului este situat la intersect¸ia perpendicularelor duse pe b0 b1 , respectiv pe b2 b1 ˆın b0 , respectiv b2 . Exemplul 6.13 Consider˘ am b0 = (1, 0), b1 = (1, 1) ¸si b2 = (0, 1), ˆın particu√ lar θ = π4 , deci cos θ = 22 ¸si arcul de cerc corespunz˘ator este dat de parametrizarea ! √ √ √ √ 1 + ( 2 − 2)t + (1 − 2)t2 2t + (1 − 2)t2 √ √ √ √ r(t) = , . 1 + ( 2 − 2)t + (2 − 2)t2 1 + ( 2 − 2)t + (2 − 2)t2 Observat¸ia 6.14 (i) Punctele unei curbe B´ezier rat¸ional p˘atratice pot fi determinate fie aplicˆ and algoritmul de Casteljau atˆat numitorului cˆat ¸si num˘ar˘atorului ¸si apoi efectuˆ and ˆımp˘art¸irea, fie determinˆand punctele a0 , a1 , a2 din R3 care prin π sunt aplicate ˆın bi , aplicˆand acestor puncte algoritmul de Casteljau (cu alte cuvinte determinˆand puncte ale curbei B´ezier asociate a) ¸si apoi calculˆ and imaginea acestor puncte prin proiect¸ia π. (ii) Prin analogie cu curbele B´ezier rat¸ional p˘atratice, putem introduce curbe B´ezier rat¸ionale de grad n din Rm . Datele cu ajutorul c˘arora construim o astfel de curb˘ a sunt: • poligonul de control (b0 , . . . , bn ) din Rm ; • sistemul de ponderi (λ0 , . . . , λn ), nu toate nule. Curba B´ ezier rat¸ional˘ a de grad n asociat˘a acestor date este dat˘a de r(t) =

n X i=0

λ B n (t) Pn i i n bi , j=0 λj Bj (t)

t ∈ [0, 1].

Propriet˘ a¸tile unei astfel de curbe sunt analoage propriet˘a¸tilor CBRP.

37

Cum putem construi un cerc complet folosind trei arce de cerc privite ca CBRP?

Anexa A

Proiecte I. (25p) 1. Racordul a dou˘ a cubice Input: Coeficient¸ii a dou˘ a curbe polinomiale de gradul 3 plane, definite pe [−1, 0], respectiv [0, 1]. Output: Precizeaz˘ a dac˘ a cele dou˘a curbe au un racord ˆın t = 0 ¸si, ˆın caz afirmativ, indic˘ a tipul acestuia (C 1 , GC 1 sau C 2 ). 2. Schimbare de parametru Input: Coeficient¸ii unei curbe polinomiale de gradul 2 plane c definit˘a pe intervalul [0, 1], a < b numere reale. Output: Calculeaz˘ a coeficient¸ii curbei polinomiale c ◦ ϕ obt¸inut˘a prin schimbarea de parametru ϕ : [a, b] → [0, 1]. 3. Curbura unei curbe polinomiale plane. Input: Coeficient¸ii unei curbe plane polinomiale c de grad 2 (eventual 3). Output: -Reprezint˘ a grafic (cˆat mai sugestiv) curbura lui c. 4. Algoritmul lui Aitken. Input: Un poligon de control (b0 , . . . , bn ), un num˘ar real t0 . Output: -Construie¸ste, folosind algoritmul lui Aitken, curba polinomial˘a care interpoleaz˘ a punctele b0 , . . . , bn . -Precizeaz˘ a punctul corespunz˘ator valorii t0 . 5. Interpolare folosind polinoamele Lagrange. Input: Un poligon de control (b0 , . . . , bn ), un num˘ar real t0 . Output: -Construie¸ste, folosind polinoamele Lagrange, curba polinomial˘a care interpoleaz˘ a punctele b0 , . . . , bn . -Precizeaz˘ a punctul corespunz˘ator valorii t0 . 6. Algoritmul de Casteljau. Input: Un poligon de control (b0 , . . . , bn ), un num˘ar real t0 . Output: -Construie¸ste, folosind algoritmul de Casteljau, curba B´ezier asociat˘a poligonului de control (b0 , . . . , bn ). -Precizeaz˘ a punctul corespunz˘ator valorii t0 .

38

7. Forma Bernstein a curbelor B´ ezier. Input: Un poligon de control (b0 , . . . , bn ), un num˘ar real t0 . Output: -Construie¸ste, folosind polinoamele Bernstein, curba B´ezier asociat˘a poligonului de control (b0 , . . . , bn ). -Precizeaz˘ a punctul corespunz˘ator valorii t0 . 8. Curb˘ a polinomial˘ a scris˘ a ca ¸si curb˘ a B´ ezier. Input: Coeficient¸ii unei curbe polinomiale plane de grad 3. Output: -Scrie cubica sub form˘a de curb˘a B´ezier, indicˆand poligonul de control. -Reprezentare grafic˘ a.

II. (40p) 9. Curbe generate de punctele intermediare Ilustreaz˘ a cˆ at mai sugestiv curbele determinate de punctele intermediare de Casteljau. 10. Invariant¸a afin˘ a a curbelor B´ ezier. Ilustreaz˘ a cˆ at mai sugestiv proprietatea de invariant¸˘a la transform˘ari afine a curbelor B´ezier. 11. Invariant¸a la combinat¸ii baricentrice a curbelor B´ ezier. Ilustreaz˘ a cˆ at mai sugestiv proprietatea de invariant¸˘a la combinat¸ii baricentrice a curbelor B´ezier. 12. Inserarea repetat˘ a a unui punct de control. Ilustreaz˘ a cˆ at mai sugestiv ce se ˆıntˆampl˘a cˆand inser˘am ˆın mod repetat un vˆarf al unui poligon de control. 13. Intersect¸ia paralelipipedelor minime. Input: Dou˘ a poligoane de control ale unor cubice B´ezier. Output: -Precizeaz˘ a dac˘ a interioarele paralelipipedelor minime ale celor dou˘a poligoane de control se intersecteaz˘a sau nu. -Reprezentare grafic˘ a (inclusiv desenarea celor dou˘a curbe B´ezier). 14. M˘ arirea gradului unei curbe B´ ezier Input: Un poligon de control P = (b0 , . . . , bn ), k ≥ 1. Output: -Construie¸ste, folosind metoda de m˘arire a gradului, poligoane de control avˆ and n + 2, n + 3, . . . , n + k + 1 puncte ¸si care genereaz˘a aceea¸si curb˘a B´ezier ca ¸si P. -Reprezentare grafic˘ a (ˆın cazul ˆın care poligonul de control este din R2 ). 15. ”Compararea” a dou˘ a curbe B´ ezier plane Input: Poligoanele de control pentru dou˘a curbe B´ezier plane. Output: -Decide dac˘ a cele dou˘a poligoane genereaz˘a aceea¸si curb˘a B´ezier. -Reprezentare grafic˘ a.

39

16. ”Deformarea” unei curbe B´ ezier ˆıntr-o alt˘ a curb˘ a B´ ezier Input: Poligoanele de control pentru dou˘a curbe B´ezier plane b1 ¸si b2 . Output: Folosind m˘ arirea gradului ¸si invariant¸a la combinat¸ii baricentrice, realizeaz˘ a o animat¸ie cu o familie de curbe de la b1 la b2 care s˘a sugereze deplasarea lui b1 ˆınspre b2 . 17. Subdivizare Input: Poligonul de control al unei curbe B´ezier plane b, α ∈ [0, 1]. Output: -Determin˘ a poligoanele de control ale curbelor b|[0,α] ¸si b|[α,1] . -Reprezentare grafic˘ a. 18. Racord de clas˘ a C 1 al unor cubice B´ ezier Input: Dou˘ a poligoane de control P = (b0 , b1 , b2 , b3 ), Q = (c0 , c1 , c2 , c3 ) din planul R2 , numere reale u0 < u1 < u2 . Output: -Stabile¸ste dac˘ a b ¸si c (curbele B´ezier asociate lui P, respectiv Q ¸si definite pe [u0 , u1 ], respectiv [u1 , u2 ]) au un racord de clas˘a GC 1 sau C 1 . -Reprezentare grafic˘ a. 19. Algoritmul Boehm-de Boor Input: Un num˘ ar natural L, un poligon de Boor (d−1 , d0 , . . . , dL+1 ) ¸si un ¸sir de noduri u0 , . . . , uL . Output: Reprezint˘ a grafic cubica spline asociat˘a acestor date. 20. Curbe B´ ezier rat¸ional p˘ atratice Input: Coeficient¸ii unor polinoame P, Q, R de gradul 2. Output: -Determin˘ a poligonul de control (b0 , b1 , b2) ¸si ponderile  λ0 , λ1 , λ2 P (t) Q(t) , . care determin˘ a curba B´ezier rat¸ional p˘atratic˘a r(t) = R(t) R(t) -Reprezentare grafic˘ a.

40

Anexa B

• Punctaj examen: 10p: oficiu 40p (max): proiect laborator 50p (max): examen final – prob˘a scris˘a (”cu c˘art¸ile pe mas˘a”) Nota final˘ a se obt¸ine ˆımp˘ art¸ind punctajul la 10 ¸si rotunjind. ATENT ¸ IE! Pentru a promova examenul obt¸inute minim 50 de puncte, din care minim 10 puncte la lucrarea scris˘a. • Proiecte: – sunt propuse ˆın suportul de curs (Anexa A); – pot fi realizate ˆın echip˘ a (1-3 membri); – nu exist˘ a restrict¸ii asupra limbajului de programare utilizat; – evaluarea: la laborator. Vor fi punctate: ◦ respectarea termenului de finalizare; ◦ aspecte informatice (rularea programului, tratarea corect˘a a cazurilor degenerate, originalitate); ◦ aspecte matematice (chestiuni teoretice ¸si rezolvarea unui aplicat¸ii legate de proiectul realizat).

41

Bibliografie [1] G. Farin, Curves and Surfaces for CAGD - A practical guide, Academic Press, 2002. http://www.farinhansford.com/books/cagd/materials.html http://www.vis.uni-stuttgart.de/ kraus/LiveGraphics3D/cagd/ [2] E. Petri¸sor, Modelare geometric˘ a algoritmic˘ a, Ed. Tehnic˘a, Bucure¸sti, 2001. [3] H. Prautzsch, W. Boehm ¸si M. Paluszny, B´ezier and B-Spline Techniques, Springer, 2002. http://i33www.ira.uka.de/applets/mocca/html/noplugin/inhalt.html [4] M. de Berg, M. van Kreveld, M. Overmars ¸si O. Schwarzkopf, Computational Geometry, Algorithms and Applications, Springer, 2000. [5] F. Preparata ¸si M. Shamos, Computational Geometry: An Introduction, Springer, 1985. [6] D. Hearn ¸si M. Baker, Computer Graphics with OpenGL, Prentice Hall, 2003. [7] G. Albeanu, Grafica pe calculator. Algoritmi fundamentali, Editura Universit˘ a¸tii din Bucure¸sti, 2001. ——————————————————————————————[8] L. B˘ adescu, Geometrie, Editura Universit˘a¸tii Bucure¸sti, 2000. [9] M. do Carmo, Differential Geometry of Curves and Surfaces, Prentice Hall, 1976. [10] Gh. Galbur˘ a ¸si F. Rad´ o, Geometrie, Editura Didactic˘a ¸si Pedagogic˘a, Bucure¸sti, 1979. [11] A. Gray, Modern Differential Geometry of Curves and Surfaces with Mathematica, CRC Press, 1999. [12] I. Hiric˘ a, S. Leiko, L. Nicolescu, G. Pripoae, Geometrie diferent¸ial˘ a. Probleme. Aplicat¸ii, Bucure¸sti, 1999. [13] M.I. Munteanu, Algoritmi geometrici 2D ¸si aplicat¸ii ˆın CAGD, Editura Universit˘ a¸tii ”Al. I. Cuza” Ia¸si, 2005. [14] L. Nicolescu, Curs de geometrie, Bucure¸sti, 2002.

42

[15] L. Ornea ¸si A. Turtoi, O introducere ˆın geometrie, Editura Theta, Bucure¸sti, 2000. [16] M.S. Stupariu, Geometrie analitic˘ a, Bucure¸sti, 2008. http://fmi.unibuc.ro/ro/catedre/geometrie/stupariu sorin/

43

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF