You are on page 1of 43

GEOMETRIE COMPUTATIONAL

A
Mihai-Sorin Stupariu
Sem. I, 2011-2012
Cuprins
1 Material pregatitor 3
1.1 Elemente de algebra liniara, geometrie ana si euclidiana . . . . 3
1.2 Curbe parametrizate. Curbe polinomiale. Schimbari de parametru 3
1.3 Vector tangent, vector accelerat ie. Regularitate . . . . . . . . . . 5
1.4 Racord de clasa (
k
al unor arce de curba. Continuitate geometrica 6
1.5 Curbe plane (curbe 2D) . . . . . . . . . . . . . . . . . . . . . . . 8
1.6 Curbe 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.7 Elemente de geometrie diferent iala a suprafet elor . . . . . . . . . 11
2 Interpolare polinomiala 16
2.1 Segmente. Interpolare liniara (ana) . . . . . . . . . . . . . . . . 16
2.2 Algoritmul lui Aitken . . . . . . . . . . . . . . . . . . . . . . . . . 17
3 Curbe Bezier 19
3.1 Algoritmul de Casteljau . . . . . . . . . . . . . . . . . . . . . . . 19
3.2 Forma Bernstein a curbelor Bezier . . . . . . . . . . . . . . . . . 21
4 Proprietat i ale curbelor Bezier 24
4.1 Proprietat i elementare . . . . . . . . . . . . . . . . . . . . . . . . 24
4.2 Derivatele unei curbe Bezier . . . . . . . . . . . . . . . . . . . . . 24
4.3 Modicarea unei curbe Bezier . . . . . . . . . . . . . . . . . . . . 25
4.4 Generarea unei curbe Bezier cu poligoane de control diferite (marirea
gradului) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.5 Subdivizare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5 Cubice spline 29
5.1 Racordul a doua arce de curba Bezier . . . . . . . . . . . . . . . 29
5.2 Cubice spline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
6 Curbe Bezier rat ionale 35
A Proiecte 38
B Algoritm pentru determinarea curburii unei curbe Bezier 40
1
Bibliograe 42
2
Capitolul 1
Material pregatitor
1.1 Elemente de algebra liniara, geometrie ana
si euclidiana
Not iuni de algebra liniara: spat iu vectorial, vector, combinat ie liniara, liniar
(in)dependent a, sistem de generatori, baza, reper, dimensiune a unui spat iu vec-
torial, componentele unui vector ntr-un reper, matrice de trecere ntre repere,
repere orientate la fel (opus), reper drept (stramb), produs scalar, norma unui
vector, versorul unui vector nenul, spat iu vectorial euclidian, vectori ortogonali,
baza ortonormata, reper ortonormat.
Not iuni de geometrie ana: vectorul determinat de doua puncte, combinat ie
ana, an (in)dependent a, acoperirea ana a unei mult imi de puncte, dreapta
determinata de doua puncte distincte, reper cartezian, coordonatele unui punct
ntr-un reper cartezian, sistem de axe asociat unui reper cartezian din R
n
, rapor-
tul a trei puncte coliniare, segmentul determinat de doua puncte, mult ime con-
vexa, nchiderea (nfasuratoarea) convexa a unei mult imi, aplicat ie ana (exem-
ple: translat ie, omotetie, proiect ie, simetrie).
Not iuni de geometrie euclidiana: distant a dintre doua puncte, reper carte-
zian ortonormat, izometrie, proiect ie centrala.
Detalii pot gasite n [8], [10], [15] [16].
1.2 Curbe parametrizate. Curbe polinomiale.
Schimbari de parametru
Denit ia 1.1 Fie I R un interval. O curba parametrizata de clasa (
k
este data de o aplicat ie (
k
-diferent iabila c : I R
n
. Aplicat ia c se numeste
parametrizare, iar mult imea M := Im(c) se numeste imagine geometrica
a curbei.
Daca n = 2 curba se numeste plana (curba 2D), iar daca n = 3 curba se
numeste stramba (curba 3D).
Exemplul 1.2 (i) Curbele
c
1
: R R
2
, c
1
(t) = (2 + 4t + 1, 2 4t);
c
2
: R R
2
, c
2
(t) = (4 3 cos t, 3 + 2 sint);
c

2
: R R
2
, c

2
(t) = (4 3 cos 3t, 3 + 2 sin3t);
3
c

2
: R R
2
, c

2
(t) = (4 3 cos(1 t), 3 + 2 sin(1 t));
c
3
: R R
2
, c
3
(t) = (2 t +t
2
t
3
+ 6t
4
, 1 +t + 2t
2
+ 3t
3
);
c
4
: R R
2
, c
4
(t) = (t
2
2t + 2, 2t
2
6t + 4) =
= t
2
(1, 0) + 2t(1 t)(1, 1) + (1 t)
2
(2, 4);
c
5
: [0, 1] R
2
, c
5
(t) = (t
3
+ 3t, 3t
2
+ 3t) =
= t
3
(4, 0) + 3t
2
(1 t)(2, 1) + 3t(1 t)
2
(1, 1) + (1 t)
3
(0, 0)
sunt curbe parametrizate plane de clasa (

.
(ii) Curba c
6
: [1, 1] R
2
, c
6
(t) = (t, t[t[) este de clasa (
1
, dar nu este de
clasa (
2
, iar curba c

6
: [1, 1] R
2
, c

6
(t) = (t, [t[) este de clasa (
0
, dar nu este
de clasa (
1
.
(iii) Curbele c
7
: R R
3
, c
7
(t) = (2 cos t, 2 sint, t) si
c
8
: [0, 1] R
3
, c
8
(t) = (2t
3
+ 3t
2
, 4t
3
6t
2
+ 3t, t
3
) =
= t
3
(1, 1, 1) + 3t
2
(1 t)(1, 0, 0) + 3t(1 t)
2
(0, 1, 0) + (1 t)
3
(0, 0, 0)
sunt curbe strambe de clasa (

.
Denit ia 1.3 (i) O curba polinomiala de grad d este o curba denita de
o parametrizare polinomial a, i.e. de o aplicat ie c = (c
1
, . . . , c
n
) : I R
n
cu
proprietatea ca c
1
, . . . , c
n
sunt funct ii polinomiale de grad cel mult d si cel
put in una dintre ele are grad exact d.
(ii) O curba data de o aplicat ie c : [u
0
, u
L
] R
n
se numeste polinomiala
pe port iuni daca exista o diviziune
u
0
< u
1
< . . . < u
i
< u
i+1
< . . . < u
L
a intervalului [u
0
, u
L
] astfel ca pentru orice i = 0, . . . , L1, restrict ia c[
[ui,ui+1]
a aplicat iei c la intervalul [u
i
, u
i+1
] sa e polinomiala.
Exemplul 1.4 (i) Curbele c
1
, c
3
, c
4
si c
5
din exemplul 1.2 sunt curbe polino-
miale de grade 1, 4, 2, respectiv 3.
(ii) Orice curba polinomiala c : [a, b] R
n
este o curba polinomiala pe
port iuni.
(iii) Curbele c
6
si c

6
din exemplul 1.2 sunt curbe polinomiale pe port iuni
care nu sunt curbe polinomiale, deoarece avem
c
6
(t) =
_
(t, t
2
), daca t [1, 0]
(t, t
2
), daca t [0, 1].
c

6
(t) =
_
(t, t), daca t [1, 0]
(t, t), daca t [0, 1].
Denit ia 1.5 Fie c : I R
n
si c :

I R
n
doua curbe parametrizate. Spunem
ca c si c difera printr-o schimbare de parametru (sau ca c a fost obt inuta
din c printr-o schimbare de parametru) daca exista un difeomorsm :

I I
(numit reparametrizare) astfel ca c = c .
O reparametrizare pastreaza (schimba) orientarea daca este strict
crescatoare (respectiv strict descrescatoare).
Observat ia 1.6 Printr-o reparametrizare imaginea geometrica a curbei consi-
derate nu se modica, se schimba doar modul in care parcurgem curba.
4
Denit ia 1.7 O schimbare ana de parametru (reparametrizare
ana) este o aplicat ie de forma
: [c, d] [a, b], (t) =
b a
d c
t +
ad bc
d c
,
unde [a, b], [c, d] R sunt doua intervale (care nu se reduc la un punct).
Observat ia 1.8 Schimbarile ane de parametru sunt singurele care ment in o
curba polinomiala n clasa curbelor polinomiale de acelasi grad.
Exemplul 1.9 (i) Aplicat iile c
2
, c

2
si c

2
din exemplul 1.2 sunt parametrizari
diferite ale elipsei de ecuat ie
(x14)
2
9
+
(x23)
2
4
= 1. Schimbarile de parametru
utilizate sunt t 3t, respectiv t 1 t.
(ii) Aplicat ia : [0, 1] [0, 1], (t) = 1 t este o schimbare ana de
parametru care schimba orientarea. Aplicand aceasta schimbare de parametru
curbei polinomiale de gradul 2 data de c : [0, 1] R
2
, c(t) = (t
2
+ 4t + 1, t + 2)
obt inem curba parametizata c : [0, 1] R
2
, c(t) = (t
2
6t+6, t+3). Imaginea
geometrica a celor doua curbe este un arc al parabolei x
1
x
2
2
+ 3 = 0, care
uneste 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.
Denit ia 1.10 O curba data de o parametrizare injectiva se numeste curba
simpla.
Exemplul 1.11

In exemplul 1.2 curba c
1
este simpla, iar curba c
2
nu este o
curba simpla.
1.3 Vector tangent, vector accelerat ie. Regula-
ritate
Denit ia 1.12 Fie c : I R
n
, c = (c
1
, . . . , c
n
) o parametrizare de clasa (
k
(k 1) a unei curbe si t
0
I xat.
(i) Vectorul c

(t
0
) := (c

1
(t
0
), . . . , c

n
(t
0
)) se numeste vector tangent (vec-
tor viteza) la curba n punctul corespunzator lui c(t
0
). Dreapta care trece
prin punctul c(t
0
) si are direct ia data de vectorul c

(t
0
) se numeste tangenta
la curba c n punctul c(t
0
).
(ii) Dreapta care trece prin punctul c(t
0
) si este perpendiculara la tangenta
la curba n acest punct se numeste normala la curba c n punctul c(t
0
).
Observat ia 1.13 Ecuat iile parametrice ale tangentei la curba c prin punctul
c(t
0
) sunt
_
_
_
x
1
= c
1
(t
0
) +sc

1
(t
0
)
. . . . . . . . . . . . . . .
x
n
= c
n
(t
0
) +sc

n
(t
0
)
s R.
Denit ia 1.14 Fie c : I R
n
, c = (c
1
, . . . , c
n
) o parametrizare de clasa (
k
(k 1) a unei curbe
(i) Punctul c(t
0
) se numeste punct regulat daca c

(t
0
) ,= 0.
(ii) Punctul c(t
0
) se numeste punct singular daca c

(t
0
) = 0.
(iii) O curba se numeste regulata daca toate punctele sale sunt regulate.
Denit ia 1.15 Fie c : I R
n
, c = (c
1
, . . . , c
n
) o parametrizare de clasa (
k
(k 2) a unei curbe si t
0
I xat. Vectorul c

(t
0
) := (c

1
(t
0
), . . . , c

n
(t
0
)) se
numeste vector accelerat ie la curba n punctul corespunzator lui c(t
0
).
5
Propozit ia 1.16 Fie c : I R
n
si c :

I R
n
doua parametrizari de clasa (
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

(s) =

(s) c

((s)),
c

(s) =

(s)
2
c

((s)) +

(s) c

((s)).

In particular, regularitatea unei curbe este o proprietate intrinseca a acesteia,


n sensul ca nu depinde de parametrizarea aleasa.
Denit ia 1.17 Fie c : I R
n
, c = (c
1
, . . . , c
n
) o parametrizare de clasa (
k
(k 1) a unei curbe si [a, b] I un interval.
(i) c
|
[a,b]
: [a, b] R
n
se numeste arc al curbei c;
(ii) lungimea arcului de curba c
|
[a,b]
este L(c
|
[a,b]
) =
_
b
a
|c

(t)|dt.
Propozit ia 1.18 Lungimea unui arc de curba este invarianta la schimbari de
parametru.
1.4 Racord de clasa (
k
al unor arce de curba.
Continuitate geometrica
Denit ia 1.19 Fie c
1
: [a, b] R
n
si c
2
: [b, c] R
n
doua parametrizari ale
unor arce de curba.
(i) Daca c
1
(b) = c
2
(b) =: P, spunem ca cele doua arce sunt racordate n
punctul P.
(ii) Racordul se numeste de clasa (
k
daca c
(l)
1
(b) = c
(l)
2
(b), oricare ar
l = 0, . . . , k.
Exemplul 1.20 Curbele date de parametrizarile
c
1
: [2, 0] R
2
, c
1
(t) = (2t + 1, t + 2),
c
2
: [0, 3] R
2
, c
2
(t) = (t
3
3t
2
+ 2t + 1, t
2
+t + 2)
au n punctul P = (1, 2) un racord de clasa (
1
care nu este de clasa (
2
. Mai
precis, avem:
c
1
(0) = c
2
(0) = (1, 2); c

1
(0) = c

2
(0) = (2, 1);
c

1
(0) = (0, 0) ,= c

2
(0) = (6, 2).
Observat ia 1.21 Fie c
1
: [a, b] R
n
si c
2
: [b, c] R
n
doua parametrizari
ale unor arce de curba care au n P = c
1
(b) = c
2
(b) un racord de clasa (
k
(k 1). Fie : [ a, b] [a, b] o schimbare de parametru astfel ca (b) = b,
dar

(b) ,= 1 (spre exemplu, o schimbare ana de parametru ntre intervale


de lungimi diferite) si e c
1
:= c
1
curba obt inuta n urma reparametrizarii.
Atunci
c

1
(b) =

(b) c

1
(b) ,= c

2
(b),
ceea ce arata ca, n general, racordul de clasa (
k
nu se pastreaza n urma
schimbarilor de parametru. Vectorii tangent i sunt coliniari, dar nu identici.
Concret, considerand curbele c
1
si c
2
din exemplul 1.20, schimbarea de pa-
rametru : [1, 0] [2, 0], (s) = 2s si curba c
1
: [1, 0] R
2
, c
1
:= c
1
,
i.e.
c
1
(s) = (4s + 1, 2s + 2),
6
avem
c
1
(0) = c
2
(0) = (1, 2); c

1
(0) = (4, 2) ,= c

2
(0) = (2, 1).
Asadar, desi parametrizarile c
1
si c
1
sunt echivalente, ele nu au acelasi tip de
racord cu c
2
n punctul (1, 2): c
1
are un racord de clasa (
0
, iar c
1
are un racord
de clasa (
1
. Remarcam faptul ca avem c

1
(0) = 2 c

2
(0).
Pentru a permite o mai mare exibilitate n racordul unor arce de curba
si pentru a nu pierde proprietatea de racord de clasa (
k
n urma reparame-
trizarilor este introdusa not iunea de continuitate geometrica (denit ia 1.23).
Observat ia 1.22 Exista o clasa importanta de schimbari de parametru care
pastreaza racordul de clasa (
k
: translat iile, i.e. reparametrizarile de forma
: [a, b] [a , b ], (t) = t , (a, b, R, a < b),
deoarece, n cazul unei translat ii, avem

(t) = 1,
(l)
(t) = 0, pentru orice
t [a, b] si pentru orice l 2.

In particular, pentru a studia problema racordului de clasa (


k
este sucient
sa alegem intervalele pe care sunt denite parametrizarile de forma [a, 0], res-
pectiv [0, b], deoarece, printr-o schimbare de tip translat ie, orice doua intervale
arbitrare pot transformate n intervale de acest tip.
Denit ia 1.23 Fie c
1
: [a, 0] R
n
si c
2
: [0, b] R
n
doua parametrizari
ale unor arce de curba astfel ca c
1
(0) = c
2
(0) =: P si c

1
(0) ,= 0, c

2
(0) ,=
0. Cele doua arce au n punctul P un racord de clasa G(
k
daca exista o
reparametrizare (care pastreaza orientarea) : [ a, 0] [a, 0] cu (0) = 0, astfel
ncat parametrizarile c
1
si c
2
sa verice condit iile de racord de clasa (
k
.

In
acest caz spunem ca parametrizarea
c : [a, b] R
n
, c(t) =
_
c
1
(t), daca t [a, 0]
c
2
(t), daca t [0, b]
are continuitate geometrica de clasa G(
k
n t = 0.
Observat ia 1.24

In CAGD sunt utilizate mai ales condit iile de racord de clasa
G(
1
si G(
2
, care pot vericate astfel: e c
1
si c
2
doua parametrizari ca n
denit ia 1.23. Atunci:
(i) arcele denite de cele doua parametrizari au un racord de clasa G(
1
daca
si numai daca exista o constanta pozitiva > 0 astfel ca
c

2
(0) = c

1
(0)
(i.e. vectorii tangent i la cele doua curbe sunt coliniari si au acelasi sens);
(ii) arcele denite de cele doua parametrizari au un racord de clasa G(
2
daca
si numai daca exista o constante > 0, R astfel ca
c

2
(0) = c

1
(0)
c

2
(0) =
2
c

1
(0) + c

1
(0).
Exemplul 1.25 Fie curbele
c
1
: [2, 0] R
2
, c
1
(t) = (3t
3
2t
2
+ 2t + 2, t
2
2t + 1),
c
2
: [0, 1] R
2
, c
2
(t) = (6t + 2, 6t + 1),
c
3
: [0, 1] R
2
, c
3
(t) = (3t
3
10t
2
+ 4t + 2, 6t
2
4t + 1).
7
Cum c
1
(0) = c
2
(0) = c
3
(0) = (2, 1), ne putem pune problema racordului curbei
c
1
cu c
2
si cu c
3
n t = 0. Pentru a stabili ce clasa au aceste racorduri, calculam
c

1
(0) = (2, 2), c

2
(0) = (6, 6), c

3
(0) = (4, 4);
c

1
(0) = (4, 2), c

2
(0) = (0, 0), c

3
(0) = (20, 12).
Avem c

2
(0) = 3c

1
(0), iar c

2
(0) 9c

1
(0) = (36, 18). Acest vector nu este
coliniar cu c

1
(0) = (2, 2), deci curbele c
1
si c
2
au un racord de clasa G(
1
care
nu este de clasa G(
2
n (2, 1) = c
1
(0) = c
2
(0).

In schimb,
c

3
(0) = 2c

1
(0), c

3
(0) 4c

1
(0) = (4, 4) = 2c

1
(0),
ceea ce arata ca c
1
si c
3
au un racord de clasa G(
2
n P = c
1
(0) = c
3
(0).
1.5 Curbe plane (curbe 2D)
Denit ia 1.26 Fie c : I R
2
, c = (c
1
, c
2
) o curba plana.
(i) Curbura lui c ntr-un punct regulat c(t) este

c
(t) :=
c

1
(t)c

2
(t) c

1
(t)c

2
(t)
(c

1
(t)
2
+c

2
(t)
2
)
3
2
=
det(c

(t), c

(t))
|c

(t)|
3
.
(ii)

In cazul n care
c
(t) ,= 0, raza de curbura a lui c n c(t) este, prin
denit ie,
1
|c(t)|
.
Exemplul 1.27 (i) Curbura unei drepte este egala cu 0 n orice punct al drep-
tei: e
c : R R
2
, c(t) = (a
1
+t(b
1
a
1
), a
2
+t(b
2
a
2
))
o parametrizare a unei drepte. Atunci c

(t) = (b
1
a
1
, b
2
a
2
), c

(t) = (0, 0),


deci
c
(t) = 0 pentru orice t R.
(ii) Curbura unui cerc de raza r este, la randul sau constanta, ind egala cu
1
r
n orice punct: e
c : R R
2
, c(t) = (a
1
+r cos t, a
2
+r sint)
o parametrizare a cercului de centru (a
1
, a
2
) si de raza r. Avem
c

(t) = (r sint, r cos t), c

(t) = (r cos t, r sint), t R,


de unde deducem ca
det(c

(t), c

(t)) = det
_
r sint r cos t
r cos t r sint
_
= r
2
; |c

(t)| = r;
rezultand imediat ca avem
c
(t) =
1
r
pentru orice t R.
(iii) Fie c : R R
2
, c(t) = (a cos t, b sint) cu a > b > 0 o parametrizare a
elipsei de centru O si semiaxe a si b. Avem
c

(t) = (a sint, b cos t); c

(t) = (a cos t, b sint);


det(c

(t), c

(t)) = ab; |c

(t)| =
_
a
2
sin
2
t +b
2
cos
2
t.

In acest caz curbura nu mai este constanta, ci avem


c
(t) =
ab
(a
2
sin
2
t+b
2
cos
2
t)
3
2
.
8
Observat ia 1.28 (i) Fie c : I R
2
o parametrizare a unei curbe 2D regulate
si e :

I I o schimbare de parametru. Oricare ar s

I are loc egalitatea

c
(s) = sgn()
c
((s)),
unde sgn() este egal cu 1 sau 1, dupa cum este crescatoare sau des-
crescatoare (i.e. curbura unei curbe 2D este invarianta, pana la semn, la schimbari
de parametru).
(ii) Fie c : I R
2
o curba 2D si F : R
2
R
2
o izometrie. Pentru orice
t I are loc egalitatea

Fc
(t) = (F)
c
(t),
unde (F) este 1 sau 1, dupa cumF pastreaza sau schimba orientarea (i.e. curbura
unei curbe 2D este invarianta, pana la semn, la izometrii).
(iii) Exemplele (i) si (ii) din 1.27 arata ca dreptele si cercurile sunt curbe cu
curbura constanta (nula, respectiv nenula). Reciproc, daca o curba 2D c : I
R
2
cu I R interval conex are curbura constanta
c
(t) = n orice punct c(t),
atunci imaginea sa geometrica este e inclusa ntr-o dreapta (cand = 0), e
ntr-un cerc de raza
1

(cand ,= 0).
(iv)

In general, se poate pune problema n ce masura data curbura putem
reconstitui curba (existent a, unicitate). Raspunsul este dat de teorema fun-
damentala a curbelor plane (vezi, de exemplu, [11, capitolul 6]).
1.6 Curbe 3D
Denit ia 1.29 Fie c : I R
3
, c = (c
1
, c
2
, c
3
) o curba 3D de clasa (
k
(k 3)
cu proprietatea ca vectorii c

(t) si c

(t) sunt liniar independent i, oricare ar


t I.
(i) Curbura lui c n punctul c(t) este data de
(t) :=
|c

(t) c

(t)|
|c

(t)|
3
.
(ii) Torsiunea lui c n punctul c(t) este data de
(t) :=
c

(t) c

(t), c

(t))
|c

(t) c

(t)|
2
.
Exemplul 1.30 (i) Consideram curba
c : (0, ) R
3
, c(t) = (2 +t +t
3
, t t
3
, 5 +t
3
).
Avem, pentru orice t (0, ),
c

(t) = (1 + 3t
2
, 1 3t
2
, 3t
2
), |c

(t)| =
_
2(1 + 3t
2
)
2
+ 9t
4
;
c

(t) = (6t, 6t, 6t), c

(t) = (6, 6, 6),


c

(t) c

(t) = (6t, 6t, 0); |c

(t) c

(t)| = 6

2t;
(t) =
6

2t
(
_
2(1 + 3t
2
)
2
+ 9t
4
)
3
, (t) = 0.
(ii) Consideram curba
c : R R
3
, c(t) = (a cos t, a sint, bt), a > 0, b ,= 0,
9
numita elice circulara dreapta.

In acest caz avem
c

(t) = (a sint, a cos t, b), |c

(t)| =
_
a
2
+b
2
;
c

(t) = (a cos t, a sint, 0), c

(t) = (a sint, a cos t, 0);


c

(t) c

(t) = (ab sint, ab cos t, a


2
), |c

(t) c

(t)| = a
_
a
2
+b
2
;
(t) =
a
a
2
+b
2
, (t) =
b
a
2
+b
2
.
Remarcam ca funct iile curbura si torsiune sunt constante.
(iii) Consideram curba
c : R R
3
, c(t) = (t, t
2
,
2t
3
3
).
Pentru aceasta curba au loc egalitat ile
c

(t) = (1, 2t, 2t


2
), |c

(t)| = 1 + 2t
2
;
c

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

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


c

(t) c

(t) = 2(2t
2
, 2t, 1), |c

(t) c

(t)| = 2(1 + 2t
2
);
(t) =
2
(1 + 2t
2
)
2
, (t) =
2
(1 + 2t
2
)
2
.

In acest caz funct iile curbura si torsiune nu sunt constante, dar raportul

este
o constanta.

In general, o curba pentru care raportul dintre torsiune si curbura
este constant, se numeste elice.
Observat ia 1.31 (i) Curbura unei curbe 3D este o funct ie pozitiva.
(ii) O curba 3D are imaginea inclusa ntr-un plan daca si numai daca tor-
siunea sa este nula n orice punct al sau.
(iii) Fie c : I R
3
o parametrizare a unei curbe 3D regulate si e :

I I
o schimbare de parametru. Oricare ar s

I au loc loc egalitat ile

c
(s) =
c
((s));
c
(s) = ()
c
((s)).
(iv) Fie c : I R
3
o curba 3D si F : R
3
R
3
o izometrie. Pentru orice
t I au loc relat iile

Fc
(t) =
c
(t),
Fc
(t) = (F)
c
(t).
(v) Prin analogie cu rezultatele referitoare la curbele plane, se poate pune
problema n ce masura putem reconstitui o curba 3D (existent a, unicitate)
pornind de la curbura si torsiune. Raspunsul este dat de teorema fundamentala
a curbelor strambe (vezi, de exemplu, [11, capitolul 10]).
Denit ia 1.32 Fie c : I R
3
, c = (c
1
, c
2
, c
3
) o curba 3D de clasa (
k
(k 3)
cu proprietatea ca vectorii c

(t) si c

(t) sunt liniar independent i, oricare ar


t I. Triedrul Frenet n punctul c(t) este format din vectorii
T(t) :=
c

(t)
|c

(t)|
, N(t) := B(t) T(t), B(t) :=
c

(t) c

(t)
|c

(t) c

(t)|
.
Vectorul T(t) este versorul tangentei la curba n punctul c(t). Vectorii N(t)
si B(t) se numesc vector normala principala, respectiv vector binormala
la curba n punctul respectiv.
10
Observat ia 1.33 (i) Triedrul Frenet este un reper ortonormat mobil.
(ii) Formulele lui Frenet, scrise matriceal sub forma
_
_
T

_
_
=
_
_
0 v 0
v 0 v
0 v 0
_
_

_
_
T
N
B
_
_
, v = |c

|
arata cum pot exprimate derivatele vectorilor triedrului Frenet n reperul
asociat acestui triedru.
1.7 Elemente de geometrie diferent iala a supra-
fet elor
Denit ia 1.34 Osuprafat a parametrizata de clasa (
k
este data de o aplicat ie
(
k
-diferent iabila f : U R
3
, unde U R
2
este o mult ime (conexa). Aplicat ia
f se numeste parametrizare, iar mult imea M := Im(f) se numeste imagine
geometrica a suprafet ei.
Exemplul 1.35 (i) Consideram (a, b) R
2
(0, 0) si
f : R
2
R
3
, f(u, v) = (u, v, au +bv +c).
Imaginea geometrica a lui f este planul de ecuat ie x
3
= ax
1
+bx
2
+c.
(i) Fie P
0
R
3
un punct xat si w
1
, w
2
doi vectori ortogonali de lungime
egala cu 1. Atunci
f : R
2
R
3
, f(u, v) := P
0
+u w
1
+v w
2
este o suprafat a parametrizata de clasa (

, a carui imagine geometrica este


planul care trece prin P
0
si are subspat iul director w
1
, w
2
).
(ii) Fie r > 0 xat. Aplicat ia
f :
_

2
,

2
_
R R
3
, f(u, v) = (r cos ucos v, r cos usinv, r sinu)
da nastere unei suprafet e de clasa (

a carei imagine geometrica este sfera de


centru 0 si raza r din care au fost eliminate punctele N(0, 0, r) si S(0, 0, r).
(iii) Funct ia
f : (0, 2) R R
3
, f(u, v) = (cos u, sinu, v)
reprezinta o suprafat a a carei imagine este un cilindru circular drept din care a
fost scoasa o dreapta.
(iv) Aplicat ia
f : R
2
R
3
, f(u, v) = (ucos v, usinv, u)
este o parametrizare de clas a (

a carei imagine geometrica este conul avand


ecuat ia x
2
1
+x
2
2
x
2
3
= 0.
(v)

In general, sa consideram o curba plana si o dreapta d situata n planul
curbei si care nu intersecteaza imaginea curbei. Rotind imaginea geometrica
a curbei n jurul lui d, obt inem o suprafat a de rotat ie. Pentru simplitate sa
presupunem ca dreapta d este dreapta suport a axei Ox
3
, iar curba plana pe
care o rotim este inclusa n planul Ox
1
x
3
, deci are o parametrizare de forma
c : I R R
3
, c(t) = ((t), 0, (t)), (t) ,= 0.
11
Vom presupune n continuare ca (t) > 0. Un punct xat P = ((t
0
), 0, (t
0
))
al curbei se roteste n planul perpendicular pe d ce-l cont ine, descriind un cerc
de centru (0, 0, (t
0
)) si de raza (t
0
), deci, prin rotire, genereaza puncte de
forma
((t
0
) cos v, (t
0
) sinv, (t
0
)).

In consecint a, suprafat a de rotat ie obt inuta este imaginea parametrizarii


f : I R R
3
, f(u, v) = ((u) cos v, (u) sinv, (u)).
Cazuri particulare: Sfer a (fara poli), cilindru, tor, hiperboloid cu o panza,
catenoid, pseudosfera.
(vi) Aplicat ia
f : (0, 2) R R
3
, f(u, v) = (v cos u, v sinu, au), a > 0
reprezinta o suprafat a numita elicoid drept.
Observat ia 1.36 Pentru a obt ine informat ii suplimentare despre forma unei
suprafet e este util sa consideram curbe (cat mai convenabile) situate pe aceasta
suprafat a.
De exemplu, sa consider am sfera din exemplul 1.35 (ii) si sa xam (u
0
, v
0
)
_

2
,

2
_
. Curbele
v f(u
0
, v), u f(u, v
0
)
reprezinta un cerc paralel, respectiv un cerc meridian al sferei.

In cazul elicoidului drept, daca xam (u


0
, v
0
) cu u
0
,= 0, f(, v
0
) curba
reprezinta o port iune a unei elice circulare drepte, iar curba f(u
0
, ) reprezinta
normala la aceasta curba n punctul f(u
0
, v
0
).
Denit ia 1.37 Fie f : U R
3
o suprafat a. Pentru (u
0
, v
0
) U xat, curbele
v f(u
0
, v), u f(u, v
0
)
se numesc curbe coordonate (duse prin punctul f(u
0
, v
0
)).
Notat ie. Fie f : U R
3
o suprafat a de clasa (
k
(k 1). Fixam (u
0
, v
0
) U
si notam
f
u
(u
0
, v
0
) :=
f
u
(u
0
, v
0
), f
v
(u
0
, v
0
) :=
f
v
(u
0
, v
0
).
Denit ia 1.38 Fie f : U R
3
o suprafat a parametrizata.
(i) f se numeste regulata n punctul (u
0
, v
0
) daca vectorii f
u
(u
0
, v
0
),
f
v
(u
0
, v
0
) sunt liniar independent i.

In acest caz f(u
0
, v
0
) (sau (u
0
, v
0
)) se
numeste punct regulat, n caz contrar se numeste punct singular.
(ii) f se numeste suprafat a regulata daca este regulata n orice punct al
sau.
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 f
u
(u
0
, v
0
), f
v
(u
0
, v
0
) sunt vectorii tangent i ai curbe-
lor coordonate care trec prin punctul f(u
0
, v
0
).
Observat ie.

In cele ce urmeaza vom considera suprafet e parametrizate regulate
de clasa (
k
(k 2).
12
Denit ia 1.41 Fie f : U R
3
o suprafat a, e (u, v) U xat.
(i) Spat iul (vectorial) tangent la suprafat an f(u, v) este planul T
(u,v)
:=
f
u
(u, v), f
v
(u, v)) generat de vectorii f
u
(u, v), f
v
(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 data 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) =
f
u
(u, v) f
v
(u, v)
|f
u
(u, v) f
v
(u, v)|
.
Denit ia 1.43 Sistemul de vectori
f
u
(u, v), f
v
(u, v), N(u, v)
se numeste reper Gauss la suprafat a n punctul f(u, v).
Denit ia 1.44 Fie f : U R
3
o suprafat a, e (u, v) U xat. Numerele
E(u, v) := f
u
(u, v), f
u
(u, v)),
F(u, v) := f
u
(u, v), f
v
(u, v)),
G(u, v) := f
v
(u, v), f
v
(u, v))
se numesc coecient ii primei forme fundamentale a suprafet ei n f(u, v).
Observat ia 1.45 (i) Au loc inegalitat ile
E(u, v) > 0, G(u, v) > 0, E(u, v)G(u, v) F(u, v)
2
> 0.
(ii) Atunci cand (u, v) variaza n U, se obt in funct ii E, F, G : U R
(coecient ii primei forme fundamentale).
Exemplul 1.46 (i) Pentru planul din exemplul 1.35 (i) se obt in vectorii
f
u
(u, v) = w
1
, f
v
(u, v) = w
2
, N(u, v) = w
1
w
2
iar coecient 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 (u, v):
f
u
(u, v) = (sinu, cos u, 0), f
v
(u, v) = (0, 0, 1), N(u, v) = (cos u, sinu, 0);
E(u, v) = 1, F(u, v) = 0, G(u, v) = 1.

In particular, avem doua suprafet e diferite avand aceiasi coecient i ai primei


forme fundamentale.
(iii) Pentru sfera din exemplul 1.35 (ii) avem
f
u
(u, v) = (r sinucos v, r sinusinv, r cos u),
f
v
(u, v) = (r cos usinv, r cos ucos v, 0),
N(u, v) = (cos ucos v, cos usinv, sinu);
E(u, v) = r
2
, F(u, v) = 0, G(u, v) = r
2
cos
2
u.
13
Observat ia 1.47 Coecient ii primei forme fundamentale sunt utilizat i pentru
a efectua masuratori pe suprafat a (lungimi de curbe, unghiuri ntre curbe, arii
ale unor port iuni de suprafat a) fara a ne raporta la spat iul ambiant R
3
. Ge-
ometria intrinseca a suprafet ei este formata din acele proprietat i geometrice
care depind numai de coecient ii primei forme fundamentale.
Denit ia 1.48 Fie f : U R
3
o suprafat a, e (u, v) U xat. Numerele
E
II
(u, v) := N(u, v), f
uu
(u, v)),
F
II
(u, v) := N(u, v), f
uv
(u, v))(= N(u, v), f
vu
(u, v))),
G
II
(u, v) := N(u, v), f
vv
(u, v))
se numesc coecient 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 coecient ii celei
de-a doua forme fundamentale sunt funct iile constante
E
II
= 0, F
II
= 0, G
II
= 0.
(ii) Pentru cilindrul din exemplul 1.35 (iii) avem, oricare ar (u, v):
E
II
(u, v) = 1, F
II
(u, v) = 0, G
II
(u, v) = 0.
(iii) Pentru sfera din exemplul 1.35 (ii) avem
E
II
(u, v) = r, F
II
(u, v) = 0, G
II
(u, v) = r cos
2
u.
Denit ia 1.50 Fie f : U R
3
o suprafat a, e (u, v) U xat.
(i) Matricea operatorului Weingarten n f(u, v) este denita prin
A(u, v) :=
_
E F
F G
_
1

_
E
II
F
II
F
II
G
II
_
.
(ii) Curbura medie a suprafet ei n f(u, v) este
H(u, v) :=
1
2
tr A(u, v).
(iii) Curbura Gauss (totala) 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 curbura medie, res-
pectiv curbura Gauss.
Exemplul 1.52 (i) Pentru planul din exemplul 1.35 (i) curbura medie si cur-
bura 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
H(u, v) =
1
2
, K(u, v) = 0.
14
(iii) Pentru sfera din exemplul 1.35 (ii) curbura medie si curbura Gauss sunt
funct iile constante
H(u, v) =
1
r
, K(u, v) =
1
r
2
.
(iv) Pentru elicoidul drept din exemplul 1.35 (vi) curbura medie, respectiv
curbura Gauss sunt date de
H(u, v) = 0, K(u, v) =
a
(a
2
+v
2
)
2
.
Denit ia 1.53 Fie f : U R
3
o suprafat a. Un punct f(u, v) se numeste
(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) ,= 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 cilindru-
lui sunt parabolice, toate punctele sferei sunt eliptice, iar punctele elicoidului
sunt hiperbolice. Pe de alta parte, torul este o suprafat a care are puncte eliptice,
parabolice si hiperbolice.
Propozit ia 1.55 (O interpretare geometrica a curburii Gauss)
(i) Daca un punct P al unei suprafet e este eliptic, atunci exista o vecinatate
a sa astfel ca toate punctele acestei vecinatat i sa e situate de aceeasi parte a
planului tangent la suprafat a n P.
(ii) Daca un punct P al unei suprafet e este hiperbolic, atunci pentru orice
vecinatate a lui P pot gasite puncte ale acesteia si de o parte si de cealalta
parte a planului tangent.
Teorema 1.56 (Theorema Egregium, Gauss) Curbura totala t ine de geo-
metria intrinseca a suprafet ei.
Teorema 1.57 (Gauss) Fie T un triunghi geodezic al unei suprafet e
f : U R
3
cu f injectiva si e
1
,
2
,
3
unghiurile lui T. Are loc egalitatea

1
+
2
+
3
=
_
T
Kd,
unde _
T
Kd =
_ _
f
1
(T)
K(u, v)
_
EGF
2
dudv.
Mai multe not iuni si rezultate referitoare la teoria curbelor si a suprafet elor,
precum si numeroase exemple, pot gasite n lucrarile [11], [9], [14] si [12].
15
Capitolul 2
Interpolare polinomiala

In acest capitol ne propunem sa indicam o solut ie pentru urmatoarea problema:


Problema 2.1 Se considera un sistem de puncte p
0
, p
1
, . . . , p
n
(poligon de
control) din planul R
2
, precum si un sir de numere reale t
0
< t
1
< . . . < t
n
.
Sa se construiasca o curba polinomiala care sa interpoleze punctele date, i.e. o
curba c : R R
2
cu proprietatea ca
c(t
0
) = p
0
, c(t
1
) = p
1
, . . . , c(t
n
) = p
n
.
2.1 Segmente. Interpolare liniara (ana)
Discutam mai ntai cazul n care n = 1, deci pornim la drum cu doua puncte,
p
0
si p
1
.

In cazul particular n care t
0
= 0 si t
1
= 1, curba parametrizata
c : R R
2
, c(s) = (1 s)p
0
+sp
1
,
a carei imagine geometrica este dreapta p
0
p
1
reprezinta o solut ie a problemei
considerate. Mai mult, pentru s [0, 1], se obt in punctele segmentului [p
0
, p
1
],
pentru s < 0 se obt in punctele p de pe dreapta p
0
p
1
cu proprietatea ca p
0
este
strict ntre p si p
1
, etc.
Fie acum t
0
< t
1
doua numere reale. Pentru a construi o curba cu proprie-
tatea ceruta, trebuie sa gasim o aplicat ie care sa faca trecerea ntre intervalele
[t
0
, t
1
] si [0, 1], cu alte cuvinte sa reparametrizam curba de mai sus. Cea mai
simpla posibilitate (dar nu singura!) este de a considera schimbarea ana de
parametru : R R, (s) = (1 s)t
0
+st
1
, a carei inversa este aplicat ia Gasit i si alte schimbari
de parametru ntre in-
tervalele [0, 1] si [t0, t1].
: [t
0
, t
1
] [0, 1], (t) =
t t
0
t
1
t
0
.

In concluzie, compunerea s : [t
0
, t
1
] R
2
, s := c , reprezinta o solut ie a
problemei date. Explicit avem
s(t) =
t
1
t
t
1
t
0
p
0
+
t t
0
t
1
t
0
p
1
, t R.
Pentru t [t
0
, t
1
] obt inem o parametrizare a segmentului [p
0
, p
1
], pentru t < 0
obt inem o parametrizare a semidreptei deschise cu capatul p
0
care nu l cont ine
pe p
1
, s.a.m.d.
16
p
0
= s(t
0
) p
1
= s(t
1
)
. . . . . .
t < t
0
t
0
< t < t
1
t > t
1
Avand n vedere ca am utilizat combinat ii ane ale punctelor p
0
si p
1
pen-
tru a obt ine punctele curbei s, spunem ca aceasta curba a fost obt inuta prin
interpolare ana. Prin abuz de limbaj, metoda mai este numita si interpolare
liniara.
2.2 Algoritmul lui Aitken

Inainte de a discuta situat ia generala, analizam cazul n = 2. Fie, asadar, p


0
, p
1
si p
2
trei puncte din plan, precum si t
0
< t
1
< t
2
trei numere reale. O prima
curba care satisface condit ia din enunt este data de reuniunea semidreptelor
p
0
p
1
] si [p
1
p
2
.

In cazul n care cele trei puncte considerate nu sunt colini-
are, aceasta curba are clasa (
0
n p
1
, dar nu are clasa (
1
n acest punct (de
ce?). Pentru a construi o curba neteda cu proprietatea ceruta, vom utiliza o
interpolare ana repetata. Denim mai ntai punctele
p
1
0
(t) =
t
1
t
t
1
t
0
p
0
+
t t
0
t
1
t
0
p
1
,
Analizat i pozit ia punc-
telor p
1
0
(t), respectiv
p
1
0
(t), pentru t [t0, t2].
p
1
1
(t) =
t
2
t
t
2
t
1
p
1
+
t t
1
t
2
t
1
p
2
,
care sunt situate pe dreptele p
0
p
1
, respectiv p
1
p
2
. Ment ionam faptul ca pen-
tru t = t
1
cele doua puncte coincid cu t
1
; avem, de asemenea, egalitat ile
p
1
0
(t
0
) = p
0
, p
1
1
(t
2
) = p
2
. Ideea de baza a algoritmului este de a efectua o
noua interpolare ana, cat mai convenabila, de aceasta data a punctelor nou
construite p
1
0
si p
1
1
. Fie, asadar
p
2
0
(t) :=
t
2
t
t
2
t
0
p
1
0
(t) +
t t
0
t
2
t
0
p
1
1
(t).
Acest punct, descrie de fapt o curba
c : R R
2
, c(t) := p
2
0
(t).
Putem determina explicit punctul c n funct ie de punctele init iale p
0
, p
1
, p
2
: un
calcul direct arata ca avem Demonstrat i relat ia
(2.1).
c(t) =
(t t
1
)(t t
2
)
(t
0
t
1
)(t
0
t
2
)
p
0
+
(t t
0
)(t t
2
)
(t
1
t
0
)(t
1
t
2
)
p
1
+
(t t
0
)(t t
1
)
(t
2
t
0
)(t
2
t
1
)
p
2
. (2.1)
Curba c astfel construita este neteda (are clasa (

), ind polinomiala n t. Ea
verica si condit iile de interpolare a punctelor date p
0
, p
1
si p
2
, reprezentand
o solut ie a problemei date.
Metoda indicata poate generalizata cu usurint a pentru cazul n arbitrar,
obt inand algoritmul lui Aitken n forma generala (mai sus acest algoritm
a fost prezentat pentru cazul n = 2). Fie, asadar, p
0
, p
1
, . . . , p
n
R
2
si
t
0
< t
1
< . . . < t
n
numere reale. Notam
p
0
i
:= p
i
, i = 0, . . . , n.
17
Pentru r = 1, . . . , n si i = 0, . . . , n r si t R xat se construiesc inductiv,
folosind interpolarea ana, punctele
p
r
i
(t) :=
t
i+r
t
t
i+r
t
i
p
r1
i
(t) +
t t
i
t
i+r
t
i
p
r1
i+1
(t). (2.2)
Observat ia 2.2 (i) Direct din relat iile (2.2) se poate deduce ca pentru orice
r = 1, . . . , n, i = 0, . . . , n r este vericat sirul de egalitat i Vericat i sirul de ega-
litat i alaturat.
p
r
i
(t
i+r
) = p
r1
i+1
(t
i+r
) = . . . = p
0
i+r
(t
i+r
) = p
i+r
,
de unde rezulta ca aplicat ia t p
r
i
(t) reprezinta o curba parametrizata care in-
terpoleaza punctele p
i
, p
i+1
, . . . , p
i+r
, astfel ncat p
r
i
(t
i
) = p
i
, . . . , p
r
i
(t
i+r
) =
p
i+r
.

In particular, curba c : R R
2
, c(t) := p
n
0
(t) reprezinta o solut ie a
problemei 2.1.
(ii) Curba c poate descrisa algebric folosind polinoamele Lagrange de Scriet i explicit polinoa-
mele Lagrange de grad
1, apoi pe cele de grad 2.
grad n, care sunt asociate unui sistem de numere reale t
0
< t
1
< . . . < t
n
(pentru
simplitate aceste numere reale sunt omise din notat ia polinoamelor Lagrange,
acestea ind notate cu L
n
0
, L
n
1
, . . . L
n
n
):
L
n
i
(t) =

n
j=0,j=i
(t t
j
)

n
j=0,j=i
(t
i
t
j
)
, i = 0, . . . , n.
Inductiv, se poate demonstra ca avem pentru orice t R relat ia
c(t) =
n

i=0
L
n
i
(t)p
i
.
(iii) Curba c construita mai sus are proprietatea de invariant a ana. Ast- Demonstrat i armat ia
(iii), folosind relat ia

n
i=0
L
n
i
(t) = 1.
fel, daca p
0
, p
1
, . . . , p
n
este un poligon de control, c curba data de algoritmul
lui Aitken si : R
2
R
2
o transformare ana, atunci curba c interpoleaza
punctele (p
0
), (p
1
), . . . , (p
n
).
(iv)

In general, punctele curbei c(t) nu sunt situate, pentru t [t
0
, t
n
] n
acoperirea convexa a mult imii de puncte p
0
, p
1
, . . . , p
n
. De asemenea, mici
variat ii ale unuia dintre punctele poligonului de control pot duce la variat ii
mari ale acesteia.
18
Capitolul 3
Curbe Bezier
Am vazut n capitolul anterior cum, dat un poligon de control (p
0
, p
1
, . . . , p
n
),
putem construi o curba polinomiala care sa interpoleze aceste puncte. Pe de
alta parte, unele proprietat i ale acestui tip de curbe (de exemplu, faptul ca nu
sunt incluse n acoperirea convexa a punctelor poligonului de control) fac ca
acestea sa nu e practice n aplicat ii legate de graca pe calculator.

In anii 60,
independent unul de celalalt, Paul de Casteljau si Pierre Bezier au investigat
o alta clasa de curbe, care, chiar daca nu au proprietatea de interpolare, au
alte proprietat i geometrice remarcabile si care mai ales, s-au dovedit a foarte
utile n inginerie si, ulterior, n CAGD: curbele Bezier. La fel ca si curbele
de interpolare, curbele Bezier pot construite folosind e metode de natura
geometrica (algoritmul de Casteljau), e utilizand un aparat algebric (forma
Bernstein).
3.1 Algoritmul de Casteljau
Observat ia 3.1 Fie p
0
, p
1
, p
2
trei puncte distincte pe o parabola. Presupunem Demonstrat ia se face
alegand un reper n
care parabola sa aiba
o ecuat ie cat mai
convenabila.
ca tangenta la parabola dus a prin p
i
intersecteaza tangenta la parabola prin p
j
n punctul p
ij
(i, j = 0, 1, 2, i ,= j). Atunci au loc egalitat ile
r(p
0
, p
01
, p
02
) = r(p
01
, p
1
, p
12
) = r(p
02
, p
12
, p
2
).
Reciproca acestei observat ii este utila pentru construirea punctelor unei pa-
rabole cand se dau doua puncte ale acesteia si tangentele la parabola duse prin
aceste puncte.
Algoritmul de Casteljau pentru cazul n = 2
Fie b
0
, b
1
si b
2
trei puncte necoliniare. Pentru t R se construiesc punctele
b
1
0
(t) = (1 t)b
0
+tb
1
,
b
1
1
(t) = (1 t)b
1
+tb
2
,
b
2
0
(t) = (1 t)b
1
0
(t) +tb
1
1
(t).
Punctul b
2
0
(t) descrie, cand t variaza n R, o parabola, mai precis parabola care Calculat i rapoartele
r(b0, b
1
0
(t), b1) si
r(b1, b
1
1
(t), b2).
trece prin punctele b
0
si b
2
si ale carei tangente n aceste puncte sunt dreptele
b
0
b
1
, respectiv b
2
b
1
. Pentru t [0, 1] se obt ine arcul acestei parabole care
uneste punctele b
0
si b
2
.
19
Exemplul 3.2 Consideram punctele
b
0
= (0, 6), b
1
= (6, 6), b
2
= (6, 0).
Pentru t =
1
3
avem Ce puncte se obt in pen-
tru t = 0, respectiv t =
1?
b
1
0
_
1
3
_
=
2
3
b
0
+
1
3
b
1
= (2, 6),
b
1
1
_
1
3
_
=
2
3
b
1
+
1
3
b
2
= (6, 4),
b
2
0
_
1
3
_
=
2
3
b
1
0
+
1
3
b
1
1
=
_
10
3
,
16
3
_
.
Exercit iul 3.3 Consideram punctele b
0
= (2, 4), b
1
= (4, 2) si b
2
= (4, 0).
Calculat i punctele b
1
0
(t), b
1
1
(t) si b
2
0
(t) corespunzatoare valorilor t =
1
2
si t =
1
4
.
Algoritmul de Casteljau, forma generala
Fie b
0
, b
1
, . . . , b
n
R
m
. Pentru t R se noteaza b
0
i
(t) := b
i
(i = 0, . . . , n) si
se denesc punctele Scriet i explicit aceste
relat ii pentru n = 3.
b
r
i
(t) := (1 t)b
r1
i
(t) +tb
r1
i+1
(t),
_
r = 1, . . . , n
i = 0, . . . , n r
(3.1)
Denit ia 3.4 Punctul b
n
0
(t) descrie, cand t variaza, o curba, notata cu b
n
.
Punctele b
0
, b
1
, . . . , b
n
se numesc puncte de control ale curbei b
n
, iar poli-
gonul determinat de acestea se numeste poligon de control.
Observat ia 3.5 Punctele intermediare pot scrise ntr-un tablou triunghiular,
numit schema de Casteljau. Consideram, de exemplu, n = 2 si xam t
0

[0, 1]. Schema de Casteljau corespunzatoare are forma
b
0
b
1
b
1
0
(t
0
)
b
2
b
1
1
(t
0
) b
2
0
(t
0
)
(3.2)
Analog, n cazul n = 3 si pentru t
0
[0, 1] xat, schema asociata este
b
0
b
1
b
1
0
(t
0
)
b
2
b
1
1
(t
0
) b
2
0
(t
0
)
b
3
b
1
2
(t
0
) b
2
1
(t
0
) b
3
0
(t
0
).
(3.3)
Exemplul 3.6 (i) Schema de Casteljau corespunzatoare punctelor b
0
, b
1
, b
2
din exemplul 3.2 si valorii t
0
=
1
3
este Scriet i schema de Cas-
teljau corespunzatoare
acelorasi puncte si
valorii t =
1
2
.
(0, 6)
(6, 6) (2, 6)
(6, 0) (6, 4) (
10
3
,
16
3
).
(ii) Consideram punctele
b
0
= (1, 2), b
1
= (3, 2), b
2
= (3, 2), b
3
= (3, 2).
Schema de Casteljau corespunzatoare acestor puncte si valorii t
0
=
1
2
a para-
metrului este
(1, 2)
(3, 2) (2, 0)
(3, 2) (3, 0) (
5
2
, 0)
(3, 2) (0, 2) (
3
2
, 1) (2,
1
2
).
20
Exercit iul 3.7 Scriet i schema de Casteljau corespunzatoare punctelor
b
0
= (0, 0), b
1
= (0, 6), b
2
= (6, 6), b
3
= (12, 0)
si parametrului t
0
=
1
3
.
3.2 Forma Bernstein a curbelor Bezier
Denit ia 3.8 Pentru n N xat, polinoamele Bernstein de grad n sunt
denite prin
B
n
i
(t) = C
i
n
t
i
(1 t)
ni
, i 0, . . . , n,
unde C
i
n
=
n!
i!(ni)!
. Prin convent ie, denim B
n
i
(t) = 0, daca i , 0, . . . , n.
Exemplul 3.9

In cazul n = 1 polinoamele Bernstein sunt
B
1
0
(t) = 1 t, B
1
1
(t) = t,
iar polinoamele Bernstein de grad 2 sunt Scriet i explicit polinoa-
mele Bernstein de grad
3.
B
2
0
(t) = (1 t)
2
, B
2
1
(t) = 2t(1 t), B
2
2
(t) = t
2
.
Observat ia 3.10

In general, vom considera restrict ia funct iilor polinomiale
asociate polinoamelor Bernstein (prin abuz de limbaj, a polinoamelor Bern-
stein), pe intervalul [0, 1]. Pentru un interval arbitrar [a, b] polinoamele Bern-
stein asociate se denesc prin
B
[a,b],n
i
(u) = C
i
n
_
u a
b a
_
i
_
b u
b a
_
ni
, u [a, b],
i.e. B
[a,b],n
i
(u) = B
n
i
_
ua
ba
_
, pentru orice u [a, b].
Propozit ia 3.11 (Proprietat i ale polinoamelor Bernstein)
(i) Polinoamele Bernstein sunt nenegative pe intervalul [0, 1].
(ii) Pentru orice numar natural n, polinoamele Bernstein de grad n formeaza
o partit ie a unitat ii
n

i=0
B
n
i
(t) = 1.
(iii) Polinoamele Bernstein verica relat ia de recurent a
B
n
i
(t) = (1 t)B
n1
i
(t) +tB
n1
i1
(t). (3.4)
(iv) B
n
0
(0) = 1, B
n
i
(0) = 0 pentru i ,= 0, respectiv B
n
n
(1) = 1, B
n
i
(1) = 0
pentru i ,= n.
(v) Funct ia B
n
i
are pe intervalul [0, 1] un punct de maxim pentru t =
i
n
.
Denit ia 3.12 Fie (b
0
, . . . , b
n
) o mult ime ordonata de puncte din R
m
, numita
poligon de control. Curba Bezier b : [0, 1] R
m
denita de poligonul de De ce este importanta
relat ia

n
i=0
B
n
i
(t) =
1?
control (b
0
, . . . , b
n
) este data de formula
b(t) :=
n

i=0
B
n
i
(t)b
i
.
21
Exemplul 3.13 Consideram poligonul de control
b
0
= (1, 0), b
1
= (1, 1), b
2
= (0, 2).
Curba Bezier asociata b : [0, 1] R
2
se scrie sub forma Bernstein
b(t) =
2

i=0
B
2
i
(t)b
i
= (1 t)
2
(1, 0) + 2t(1 t)(1, 1) +t
2
(0, 2) =
(1 2t +t
2
+ 2t 2t
2
, 2t 2t
2
+ 2t
2
) = (1 t
2
, 2t).
Avem, de exemplu, b(
1
3
) = (
8
9
,
2
3
), b(
1
4
) = (
15
16
,
1
2
), etc. Calculat i b(0), b(1) si
precizat i daca punctul
b1 apart ine curbei.
Stabilim, n continuare, daca punctul (
3
4
, 1) apart ine imaginii lui b. Aceasta
este echivalent cu a gasi t
0
[0, 1] pentru care b(t
0
) = (
3
4
, 1), deci
_
1 t
2
0
=
3
4
2t
0
= 1
(3.5)
Cum sistemul (3.5) admite solut ia t
0
=
1
2
, deducem ca (
3
4
, 1) Imb, mai precis,
(
3
4
, 1) = b(
1
2
).
Exercit iul 3.14 Consideram poligonul de control
b
0
= (1, 1), b
2
= (2, 0), b
3
= (0, 0)
si e b : [0, 1] R
2
curba Bezier asociata. Calculat i b(
1
3
) si stabilit i daca
punctul (1,
1
3
) apart ine imaginii lui b.
Observat ia 3.15 Polinoamele Bernstein de grad n, B
n
0
, . . . , B
n
n
, formeaza o
baza a spat iului vectorial al polinoamelor de grad mai mic sau egal cu n.

In Indicat i si alte baze ale
acestui spat iu de poli-
noame.
particular, orice curba polinomiala de grad n poate scrisa sub forma unei
curbe Bezier.
Exemplul 3.16

In spat iul vectorial al polinoamelor de grad mai mic sau egal
cu 2 avem egalitat ile
t
2
= B
2
2
(t), t =
1
2
B
2
1
(t) +B
2
2
(t), 1 = B
2
0
(t) +B
2
1
(t) +B
2
2
(t).
Fie acum curba polinomiala
c(t) = (2t + 3t
2
, 1 2t +t
2
) = (0, 1) 1 + (2, 2) t + (3, 1) t
2
.
Folosind relat iile de mai sus, deducem
c(t) = (B
2
1
(t) + 5B
2
2
(t), B
2
0
(t)) = B
2
0
(t)(0, 1) +B
2
1
(t)(1, 0) +B
2
2
(t)(5, 0),
deci c este curba Bezier asociata poligonului de control dat de punctele b
0
=
(0, 1), b
1
= (1, 0), b
2
= (5, 0).
Exercit iul 3.17 Stabilit i c arui poligon de control i corespunde curba polino-
miala
c : [0, 1] R
2
, c(t) = (2 4t +t
2
, 2 2t + 2t
2
).
Exemplul 3.18 (i) Curba Bezier asociata unui sistem de doua puncte distincte
b
0
, b
1
are ca imagine geometrica segmentul de dreapta determinat de acestea.
(ii) Daca punctele de control b
0
, b
1
, b
2
sunt coliniare, cu b
1
situat ntre b
0
si b
2
, atunci curba Bezier asociata are gradul 1, imaginea sa ind segmentul
[b
0
b
2
].
22
Teorema 3.19 (Legatura dintre forma Bernstein si algoritmul de Cas-
teljau) Fie (b
0
, . . . , b
n
) un poligon de control din R
m
. Atunci:
(i) Curba Bezier b
n
construita cu algoritmul de Casteljau poate scrisa sub Demonstrat i aceasta
relat ie pentru n = 2.
forma
b
n
(t) =
n

i=0
B
n
i
(t)b
i
,
deci curba Bezier b
n
construita cu ajutorul algoritmului de Casteljau coincide
cu curba Bezier b denita cu ajutorul polinoamelor Bernstein.
(ii) Punctele intermediare de Casteljau b
r
i
pot exprimate prin egalitat ile
b
r
i
(t) =
r

j=0
B
r
j
(t)b
i+j
, r = 0, . . . , n, i = 0, . . . , n r,
ceea ce arata ca aceste puncte descriu, la randul lor, niste curbe Bezier. Mai
precis, pentru r xat si i = 0, . . . , n r, punctul b
r
i
(t) descrie, cand t variaza,
curba Bezier asociata poligonului de control (b
i
, b
i+1
, . . . , b
i+r
).
(iii) Punctele curbei Bezier pot scrise cu ajutorul punctelor intermediare
de Casteljau sub forma
b(t) =
nr

i=0
B
nr
i
(t)b
r
i
(t), r = 0, . . . , n.
23
Capitolul 4
Proprietat i ale curbelor
Bezier
4.1 Proprietat i elementare
Folosind e algoritmul de Casteljau, e forma Bernstein a curbelor Bezier pot
deduse imediat urmatoarele proprietat i ale acestui tip de curbe:
Propozit ia 4.1 Fie (b
0
, . . . , b
n
) un poligon de control din R
m
. Curba Bezier
asociata b : [0, 1] R
m
are urmatoarele proprietat i:
Dat i exemple de poli-
goane de control pentru
care curba asociata are
gradul exact n, respectiv
mai mic decat n.
(i) b este o curba polinomiala, avand gradul mai mic sau egal cu n;
(ii) curba b interpoleaza extremitat ile poligonului de control, i.e. au loc
relat iile b(0) = b
0
, b(1) = b
n
; n particular, daca poligonul de control este
nchis, curba Bezier asociata este nchisa;
(iii) proprietatea acoperirii convexe: punctele curbei Bezier b se aa n
acoperirea convexa a punctelor de control;
(iv) invariant a ana: daca : R
m
R
m
este o transformare ana, atunci
curba Bezier asociata poligonului de control ((b
0
), . . . , (b
n
)) este curba (b);
Ce aplicat ii au pro-
prietat ile (iv) si (v)?
(v) invariant a la combinat ii baricentrice: e (b
0
, . . . , b
n
), respectiv
(

b
0
, . . . ,

b
n
) doua poligoane de control si b, respectiv

b curbele Bezier cores-
punzatoare. Pentru orice R, curba Bezier asociata poligonului de control
((1 )b
0
+

b
0
, . . . , (1 )b
n
+

b
n
) este curba (1 )b +

b.
(vi) daca

b : [0, 1] R
m
este curba Bezier asociata poligonului de control
(b
n
, . . . , b
0
), atunci

b(t) = b(1 t), n particular, cele doua curbe au aceeasi
imagine geometrica.
4.2 Derivatele unei curbe Bezier
Denit ia 4.2 (i) Operatorul de diferent iere n avans este denit prin
b
i
:= b
i+1
b
i
, i = 0, . . . , n 1.
(ii) Prin convent ie
0
b
i
:= b
i
, i = 0, . . . , n, iar pentru r 2 se deneste Calculat i explicit
2
pentru punctele unui
poligon de control
(b0, b1, b2, b3).

r
b
i
:=
r1
(b
i
), pentru i = 0, . . . , n r.
24
Propozit ia 4.3 Fie (b
0
, . . . , b
n
) un poligon de control din R
m
si e b : [0, 1]
R
m
curba Bezier asociata. Derivatele funct iei b sunt date de formulele
b
(k)
(t) =
nk

i=0
_
n!
(n k)!

k
b
i
_
B
nk
i
(t) 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, b

(0) = n(b
1
b
0
), b

(1) = Calculat i vectorii b

(0)
si b

(1) direct, folosind


forma Bernstein.
n(b
n
b
n1
), cu alte cuvinte, vectorii tangent i la curba Bezier n punctele
b
0
(respectiv b
n
) sunt coliniari si au acelasi sens cu vectorii

b
0
b
1
(respec-
tiv

b
n1
b
n
).

In cazul n care acesti vectori sunt nenuli, ei reprezinta direct ia
tangentelor la curba n punctele respective.
(ii) Pentru orice t [0, 1] are loc egalitatea Explicat i ce devine
aceast a armat ie pentru
t = 0 si t = 1.
b

(t) = n(b
n1
1
(t) b
n1
0
(t)),
cu alte cuvinte, punctele construite n etapa (n1) a algoritmului de Casteljau
determina vectorul tangent la curba Bezier n punctul b(t).
Exemplul 4.5 Pentru schema de Casteljau din exemplul 3.6 (ii), vectorul tan-
gent la curba corespunzator valorii t =
1
2
a parametrului este (3, 3).
Exercit iul 4.6 Consideram punctele b
0
= (4, 2), b
1
= (4, 4), b
2
= (2, 4) si
e b : [0, 1] R
2
curba Bezier asociata poligonului de control (b
0
, b
1
, b
2
).
Determinat i vectorii tangent i la aceasta curba n punctele b(0), b(
1
2
), b(1).
Exercit iul 4.7 Daca punctele b
0
, b
1
, b
2
, b
3
sunt varfurile unui patrat, stabilit i
care este punctul obt inut aplicand algoritmul de Casteljau pentru valoarea pa-
rametrului t =
1
2
si care este tangenta la curba n acest punct.
4.3 Modicarea unei curbe Bezier
(i) Deplasarea unui punct de control
Fie (b
0
, . . . , b
j1
, b
j
, b
j+1
, . . . , b
n
), respectiv (b
0
, . . . , b
j1
,

b
j
, b
j+1
, . . . , b
n
) doua
poligoane de control si e b, respectiv

b curbele Bezier asociate. Folosind ex-
primarea n forma Bernstein, deducem ca pentru t [0, 1] avem

b(t)

b(t)=

b(t) b(t) = B
n
j
(t)(

b
j
b
j
) = B
n
j
(t)

b
j

b
j
.
Colinearitatea vectorilor

b(t)

b(t) si

b
j

b
j
arata ca, daca deplasam punctul
b(t) ntr-o anumita direct ie, ecare punct al curbei Bezier se deplaseaza de-a
lungul aceleiasi direct ii. Lungimea segmentului parcurs difera nsa n funct ie
de t.

In cazul n care j 1, . . . , n extremitat ile b
0
= b(0) si b
n
= b(1) Efectuat i calcule expli-
cite n cazul b0 = (0, 0),
b1 = (1, 1), b2 = (3, 3),
b1 = (0, 1).
raman neschimbate. Curba are cea mai vizibila modicare ntr-o vecinatate a
punctului b(
j
n
), deoarece funct ia B
n
j
are un maxim pentru t =
j
n
. Situat ia este
asemanatoaren cazul n care j 0, n (deci modicam una dintre extremitat i):
de exemplu, daca j = 0, punctul b
n
ramane pe loc si curba este afectata cel
mai mult n vecinatatea lui b
0
.
(ii) Inserarea repetata a unui punct de control
Fie (b
0
, . . . , b
j1
, b
j
, b
j+1
, . . . , b
n
) un poligon de control cu n + 1 puncte de
control si b curba Bezier asociata. Utilizand scrierea Bernstein a curbei b,
25
deducem ca ponderea punctului b
j
este B
n
j
(t) = C
j
n
t
j
(1 t)
nj
. Inserand n
mod repetat (de k ori) punctul b
j
, obt inem poligonul cu n+k puncte de control
(b
0
, . . . , b
j1
, b
j
, . . . , b
j
. .
k ori
, b
j+1
, . . . , b
n
).
Considerand curba Bezier

b asociata, rezulta ca ponderea punctului b
j
n curba Comparat i cele doua
ponderi n cazul k = 2.

b este mai mare decat ponderea lui b


j
n curba b, deci curba

b este mai apro-
piata de b
j
.
Este de ret inut faptul ca din punct de vedere al imaginii geometrice cele doua
poligoane coincid, nsa privite ca poligoane de control (i.e. ca mult imi ordonate
de puncte) sunt distincte si, n consecint a, curbele Bezier asociate sunt diferite.
4.4 Generarea unei curbe Bezier cu poligoane
de control diferite (marirea gradului)
Observat ia 4.8 Fie b
0
, b
1
, b
2
puncte coliniare distincte, cu b
1
situat ntre b
0
Cum vericat i daca b1
este situat ntre b0 sau
b2?
si b
2
. Curba Bezier asociata poligonului de control (b
0
, b
2
) este data prin relat ia
b(t) = (1 t)b
0
+tb
2
,
ind o curba polinomiala de gradul ntai si avand ca imagine geometrica seg-
mentul [b
0
b
2
]. Curba Bezier asociata poligonului de control (b
0
, b
1
, b
2
) admite
parametrizarea

b(t) = (1 t)
2
b
0
+ 2t(1 t)b
1
+t
2
b
2
,
ind o curba polinomiala de grad cel mult 2. Imaginea sa coincide nsa cu
imaginea lui b, ind, la randul sau, egala cu segmentul [b
0
b
2
]. Acesta este un
exemplu n care poligoane de control diferite genereaza curbe Bezier cu para-
metrizari diferite, dar care au aceeasi imagine geometrica.

In cazul particular n care punctul b


1
este mijlocul segmentului [b
0
, b
2
] avem

b(t) = (1t)
2
b
0
+2t(1t)b
1
+t
2
b
2
= (1t)
2
b
0
+2t(1t)
_
1
2
b
0
+
1
2
b
2
_
+t
2
b
2
=
=
_
(1 t)
2
+t(1 t)
_
b
0
+
_
t(1 t) +t
2
_
b
2
= (1 t)b
0
+tb
2
= b(t).
Cu alte cuvinte, pentru aceasta alegere particulara a lui b
1
, coincid atat ima- Demonstrat i ca mijlo-
cul segmentului [b0b2]
este singurul punct cu
aceast a proprietate.
ginile geometrice ale celor doua curbe, cat si parametrizarile b si

b.

In general, ne punem problema n ce masura dat un poligon de control i


putem asocia un nou poligon de control avand cu un punct n plus si astfel
ncat curbele Bezier asociate celor doua poligoane sa coincida. Raspunsul este
dat de urmatoarea propozit ie:
Propozit ia 4.9 Fie T = (b
0
, . . . , b
n
) un poligon de control si b curba Bezier
asociata. Denim poligonul de control T
(1)
= (b
(1)
0
, b
(1)
1
, . . . , b
(1)
n
, b
(1)
n+1
) prin Scriet i explicit punctele
poligonului P
(1)
pentru
n = 1, 2, 3.
b
(1)
0
= b
0
, b
(1)
n+1
= b
n
,
b
(1)
i
=
i
n + 1
b
i1
+
_
1
i
n + 1
_
b
i
, i = 1, . . . , n
si notam cu b
(1)
curba Bezier asociata. Pentru orice t [0, 1] are loc egalitatea
b(t) = b
(1)
(t); n particular, imaginile geometrice ale celor doua curbe coincid.
Reciproc, singurul poligon de control cu n+2 puncte care genereaza curba b si
care are ca extremitat i punctele b
0
si b
n
este poligonul T
(1)
.
26
Exemplul 4.10 Fie punctele
b
0
= (6, 6), b
1
= (0, 6), b
2
= (3, 0).
Cu notat iile din propozit ia 4.9 avem n = 2 si
b
(1)
0
= b
0
= (6, 6), b
(1)
3
= b
2
= (3, 0);
b
(1)
1
=
1
3
b
0
+
2
3
b
1
= (2, 6); b
(1)
2
=
2
3
b
1
+
1
3
b
2
= (1, 4)
si poligoanele de control (b
0
, b
1
, b
2
), respectiv (b
(1)
0
, b
(1)
1
, b
(1)
2
, b
(1)
3
) genereaza
aceeasi curba Bezier (vericat i!).
Exercit iul 4.11 Consideram punctele b
0
= (3, 6), b
1
= (9, 6), b
2
= (6, 0).
Gasit i un poligon de control format din patru puncte care genereaza aceeasi
curba Bezier ca si (b
0
, b
1
, b
2
).
Observat ia 4.12 (i) Extremitat ile poligoanelor de control T si T
(1)
coincid,
iar punctele intermediare ale poligonului T
(1)
, adica b
(1)
1
, . . . , b
(1)
n
sunt situate Calculat i rapoar-
tele n care punctele
b
(1)
1
, . . . , b
(1)
n
mpart
respectivele segmente.
respectiv pe segmentele [b
0
b
1
], . . . , [b
n1
b
n
] determinate de punctele de control
ale poligonului T.
(ii) Aplicand acelasi procedeu n mod repetat, obt inem un sir de poligoane
T, T
(1)
, T
(2)
, T
(3)
, . . ., unde T
(k+1)
= (T
(k)
)
(1)
. Acest sir converge la curba
Bezier denita de toate aceste poligoane, nsa convergent a este lenta si nu are
consecint e practice.
(iii) Marirea gradului este utila atunci cand avem o familie de curbe Bezier
(date prin poligoanele de control) si dorim ca aceste curbe sa e generate de po-
ligoane cu un acelasi numar de puncte: determinam poligonul cu cele mai multe
puncte (notam cu N numarul acestora) si marim numarul punctelor ecarui
poligon de control, pana cand 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 necesita ca date de intrare curbe de acelasi grad. De
asemenea, marirea gradului poate folosita n transferul de date ntre diferite
sisteme care lucreaza numai cu curbe avand gradul xat.
4.5 Subdivizare
Observat ia 4.13 Daca b : [0, 1] R
m
este o curba Bezier, atunci, pentru
orice [0, 1] restrict iile sale la intervalele [0, ] si [, 1] sunt curbe polinomi-
ale, n particular, sunt curbe Bezier. Se pune n mod natural problema gasirii
poligonului de control care le determina. De exemplu, daca b este segmentul
determinat de b
0
si b
1
, atunci pentru orice [0, 1], b[
[0,]
este curba Bezier
determinata de poligonul de control (b
0
, b()), iar b[
[,1]
este asociata poligo-
nului de control (b(), b
1
). Procesul prin care unei curbe Bezier i se asociaza
doua arce ale sale a caror reuniune este curba init iala se numeste subdivizare.
Propozit ia care urmeaza descrie situat ia generala:
Propozit ia 4.14 Fie b curba Bezier determinata de poligonul de control (b
0
, b
1
, . . . , b
n
).
Pentru orice [0, 1], restrict ia b[
[0,]
a lui b la intervalul [0, ] este curba Ce se ntampl a pentru
= 0 si = 1?
Bezier determinata de poligonul de control
(b
0
0
(), b
1
0
(), . . . , b
n1
0
(), b
n
0
()),
27
iar restrict ia b[
[,1]
a lui b la intervalul [, 1] este curba Bezier determinata de
poligonul de control
(b
n
0
(), b
n1
1
(), . . . , b
1
n1
(), b
0
n
()),
unde b
0
0
(), b
1
0
(), . . . , b
n1
0
(), b
n
0
(), b
n1
1
(), . . . , b
1
n1
(), b
0
n
() sunt puncte
de Casteljau corespunzatoare valorii a parametrului; n particular b
0
0
() = b
0
,
b
n
0
() = b(), b
0
n
() = b
n
.
Observat ia 4.15 Ultima parte a propozit iei se bazeaza pe urmatoarea ar-
mat ie: e b si

b curbe Bezier asociate poligoanelor de control (b
0
, b
1
, . . . , b
n
),
respectiv (

b
0
,

b
1
, . . . ,

b
n
), unde

b
0
= b
n
,

b
1
= b
n1
, . . . ,

b
n1
= b
1
,

b
n
= b
0
.

Intre punctele de Casteljau asociate au loc relat iile:

b
j
0
(t) = b
j
nj
(1 t), j = 0, . . . , n, t [0, 1].
Exemplul 4.16 Consideram poligonul de control (b
0
, b
1
, b
2
) format din punc-
tele
b
0
= (4, 0), b
1
= (0, 0), b
2
= (0, 8)
si b : [0, 1] R
2
curba Bezier asociata. Pentru =
1
2
punctele de Casteljau Scriet i n forma Bern-
stein curbele b, b|
[0,
1
2
]
si b|
[
1
2
,1]
.
sunt
b
0
0
_
1
2
_
= b
0
= (4, 0), b
0
1
_
1
2
_
= b
1
= (0, 0), b
0
2
_
1
2
_
= b
2
= (0, 8);
b
1
0
_
1
2
_
= (2, 0), b
1
1
_
1
2
_
= (0, 4), b
2
0
_
1
2
_
= (1, 2).
Se deduce ca restrict ia lui b la intervalul [0,
1
2
] este curba Bezier determi-
nata de poligonul de control format din punctele (4, 0), (2, 0), (1, 2), iar
restrict ia lui b la intervalul [
1
2
, 1] este curba Bezier asociata poligonului de con-
trol ((1, 2), (0, 4), (0, 8)).
Exercit iul 4.17 Fie b
0
= (4, 4), b
1
= (4, 8), b
2
= (0, 4), b
3
= (4, 0) si b :
[0, 1] R
2
curba Bezier asociata. Gasit i poligoanele de control care determina
curbele Bezier b[
[0,
1
2
]
si b[
[
1
2
,1]
.
Exercit iul 4.18 Fie b
0
, b
1
, b
2
, b
3
varfurile unui patrat si b curba Bezier aso-
ciata. Indicat i poligoanele de control care determina curbele Bezier b[
[0,
1
2
]
si
b[
[
1
2
,1]
.
Observat ia 4.19 Procesul de subdivizare a unei curbe pentru o valoare a para-
metrului (de exemplu t =
1
2
) poate repetat, obt inand arce de curba din ce n ce
mai mici. Acest procedeu este util pentru a stabili daca o dreapta intersecteaza
o curba Bezier: fara a restr ange generalitatea, se poate presupune ca dreapta
este paralela cu una din axele de coordonate. Ceea ce se studiaza, de fapt,
(si este mult mai usor de vericat din punct de vedere practic) este intersect ia
dreptei cu paralelipipedul minim (minmax box-ul) determinat de poligonul de
control care genereaza curba Bezier.

In cazul n care dreapta nu intersecteaza
acest paralelipiped, atunci ea nu intersecteaza nici curba, n caz contrar, prin
subdivizari repetate, pot aproximate punctele de intersect ie ale dreptei date
cu curba Bezier init iala.
28
Capitolul 5
Cubice spline
5.1 Racordul a doua arce de curba Bezier
Observat ia 5.1 Fie (b
0
, b
1
, . . . , b
n
) un poligon de control din R
m
si e b : Ce diferent a este ntre
curba b|
[0,
1
2
]
, construita
prin subdivizare si curba
b
[0,
1
2
]
?
[0, 1] R
m
curba Bezier asociata. Pentru un interval arbitrar [, ] R
( ,= ), denim aplicat ia (numita curba Bezier denita pe intervalul [, ])
b
[,]
: [, ] R
m
, b
[,]
:= b ,
unde Algoritmul de Casteljau
poate adaptat pen-
tru construirea curbei
b
[,]
.
: [, ] [0, 1] (u) =
u

este schimbarea ana de parametru de la intervalul [, ] la intervalul [0, 1]. Determinat i vectorii
tangent i la curba nou
construita n capetele
sale.

In cele ce urmeaza vom renunt a la scrierea intervalului de denit ie ca indice


superior, acest interval rezultand din context.
Exemplul 5.2 Consideram poligonul de control (b
0
, b
1
, b
2
) cu b
0
= (0, 0),
b
1
= (2, 0), b
2
= (2, 4). Curba Bezier asociata denita pe intervalul [0, 1] este
b : [0, 1] R
2
, b(t) = (4t 2t
2
, 4t
2
)
iar curba Bezier asociata aceluiasi poligon, dar denita pe intervalul [2, 4] este Curbele b si b au
aceeasi imagine geome-
trica.

b : [2, 4] R
2
,

b(u) = b (u),
cu (u) =
u2
42
, deci

b(u) = b
_
u 2
2
_
=
_
u
2
+ 8u 12
2
, (u 2)
2
_
.
Propozit ia 5.3 Fie (b
0
, . . . , b
n1
, b
n
) si (b
n
, b
n+1
, . . . , b
2n
) doua poligoane Scriet i explicit condit iile
din aceasta propozit ie
pentru n = 3.
de control si b : [u
0
, u
1
] R
m
, respectiv

b : [u
1
, u
2
] R
m
curbele Bezier
asociate (u
0
< u
1
< u
2
; aceasta condit ie va subnt eleasa n cele ce urmeaza).
(i) Cele doua curbe au un racord de clasa G(
1
n punctul b
n
daca si numai
daca punctele b
n1
, b
n
, b
n+1
sunt coliniare.
Demonstrat i ca, dac a
, , sunt numere re-
ale, atunci r(, , ) =

.
(ii) Cele doua curbe au un racord de clasa (
1
n punctul b
n
daca si numai
daca punctele b
n1
, b
n
, b
n+1
sunt coliniare si are loc egalitatea de rapoarte
r(b
n1
, b
n
, b
n+1
) = r(u
0
, u
1
, u
2
).
(iii) Cele doua curbe au un racord de clasa (
2
n punctul b
n
daca si numai
daca sunt vericate condit iile:
29
punctele b
n1
, b
n
, b
n+1
sunt coliniare si are loc egalitatea de rapoarte
r(b
n1
, b
n
, b
n+1
) = r(u
0
, u
1
, u
2
);
exista un punct d cu proprietatea ca b
n2
, b
n1
, d, respectiv d, b
n+1
, b
n+2
sunt triplete de puncte coliniare si, n plus, au loc egalitat ile
r(b
n2
, b
n1
, d) = r(d, b
n+1
, b
n+2
) = r(u
0
, u
1
, u
2
).
Punctul d se numeste punct de Boor asociat racordului celor doua curbe.
Exemplul 5.4 (i)

In R
2
consideram punctele b
0
= (1, 2), b
1
= (1, 4), b
2
=
(2, 5), b
3
= (4, 5), b
4
= (6, 3), b
5
= (6, 2), b
6
= (3, 0); e, de asemenea,
u
0
= 2, u
1
= 4, u
2
= 7. Cum b
2
, b
3
, b
4
nu sunt coliniare, cubicele Bezier Justicat i de ce punctele
b2, b3, b4 nu sunt coli-
niare.
b : [u
0
, u
1
] R
2
si

b : [u
1
, u
2
] R
2
corespunzatoare poligoanelor de control
(b
0
, b
1
, b
2
, b
3
), respectiv (b
3
, b
4
, b
5
, b
6
) nu au un racord de clasa G(
1
n b
3
.
(ii)

In R
2
consideram punctele b
0
= (0, 2), b
1
= (1, 3), b
2
= (3, 3), b
3
=
(4, 2), b
4
= (6, 0), b
5
= (4, 6), b
6
= (1, 1). Fie u
0
= 1, u
1
= 4, u
2
= 7.
Avem:

b
2
b
3
= b
3
b
2
= (1, 1),

b
2
b
4
= b
4
b
2
= (3, 3),
deci vectorii

b
2
b
3
si

b
2
b
4
sunt liniar dependent i, adica punctele b
2
, b
3
, b
4
sunt coliniare; n particular cubicele Bezier b : [1, 4] R
2
si

b : [4, 7] R
2
asociate poligoanelor de control (b
0
, b
1
, b
2
, b
3
), respectiv (b
3
, b
4
, b
5
, b
6
) au un
racord de clasa G(
1
n b
3
. Pe de alta parte,

b
2
b
3
= b
3
b
2
= (1, 1),

b
3
b
4
= b
4
b
3
= (2, 2),
adica r(b
2
, b
3
, b
4
) =
1
2
, iar r(u
0
, u
1
, u
2
) =
u1u0
u2u1
= 1, asadar
r(b
2
, b
3
, b
4
) ,= r(u
0
, u
1
, u
2
),
ceea ce arata ca racordul nu este de clasa (
1
. Alegand n schimb u

0
= 1, u

1
= 4
si u

2
= 10, avem
r(u

0
, u

1
, u

2
) =
u

1
u

0
u

2
u

1
=
3
6
=
1
2
= r(b
2
, b
3
, b
4
),
cu alte cuvinte curbele Bezier c : [1, 4] R
2
, respectiv c : [4, 10] R
2
asociate
celor doua poligoane de control au un racord de clasa (
1
n b
3
. Este de remarcat
faptul ca b = c (ca funct ii), n vreme ce parametrizarile

b si c au aceeasi imagine
geometrica, dar sunt diferite ca aplicat ii. Acest exemplu arata ca un racord care
are doar continuitate geometrica G(
1
poate deveni, prin alegerea convenabila
a intervalelor pe care este denita parametrizarea (este sucient sa modicam
unul din capete!) de clasa (
1
. Cu alte cuvinte, continuitatea geometrica G(
1
este legata numai de forma poligonului de control, iar faptul ca un racord are
clasa (
1
este legat atat de poligonul de control, cat si de intervalele pe care sunt
denite parametrizarile.
Sa analizam n continuare daca acest racord este si de clasa (
2
. Pentru
aceasta trebuie sa determinam punctul d de intersect ie a dreptelor b
1
b
2
si
b
4
b
5
: dreapta b
1
b
2
are ecuat ia implicita x
2
= 3, iar dreapta b
4
b
5
are ecuat ia
3x
1
x
2
18 = 0 si punctul lor de intersect ie este d = (7, 3). Avem:

b
1
b
2
= (2, 0),

b
2
d = (4, 0), r(b
1
, b
2
, d) =
1
2
,

db
4
= (1, 3),

b
4
b
5
= (2, 6), r(d, b
4
, b
5
) =
1
2
,
30
deci au loc egalitat ile
r(b
1
, b
2
, d) = r(d, b
4
, b
5
) = r(u

0
, u

1
, u

2
),
ceea ce arata ca racordul curbelor c si c este de clasa (
2
.
Daca raportul r(b
1
, b
2
, d) (respectiv r(d, b
4
, b
5
)) nu ar fost egal cu
1
2
, am

In ce situat ie nu poate
obt inut, nici dupa modi-
carea intervalelor, un
racord de clas a C
2
?
putut modica punctul b
1
pe dreapta b
2
d (respectiv punctul b
5
pe dreapta
db
4
), astfel ca raportul respectiv sa e
1
2
; altfel spus, prin modicarea poligo-
nului de control se poate obt ine un racord de clasa (
2
.
Exercit iul 5.5

In R
2
consideram punctele
b
0
= (0, 0), b
1
= (2, 2), b
2
= (2, 4), b
3
= (3, 3),
b
4
= (5, 1), b
5
= (4, 0), b
6
= (2, 1)
si numerele reale
u
0
= 0, u
1
= 1, u
2
= 3.
Fie b : [0, 1] R
2
si

b : [1, 3] R
2
curbele Bezier asociate. Stabilit i ce clasa
are racordul celor doua curbe n punctul b
3
.

Intrebare: Ce date sunt necesare pentru a putea construi doua cubice Bezier
care au un racord de clasa (
1
? Dar un racord de clasa (
2
?
Exemplul 5.6 Consideram punctele:
b
0
= (1, 1), b
1
= (2, 2), d = (6, 2), b
5
= (3, 3), b
6
= (1, 3)
si numerele reale
u
0
= 0, u
1
= 1, u
2
= 2.
Pornind de la aceste date putem construi poligoane de control (b
0
, b
1
, b
2
, b
3
) si
(b
3
, b
4
, b
5
, b
6
) astfel ncat curbele Bezier asociate b si

b denite pe intervalele
[0, 1], respectiv [1, 2] sa aib a un racord de clasa (
2
. Mai ntai sa observam ca
avem
r(u
0
, u
1
, u
2
) =
u
1
u
0
u
2
u
1
= 1.
Punctele b
2
, b
3
, b
4
le determinam din condit iile Daca A, P, B sunt
puncte coliniare
cu r(A, P, B) =
r = 1, avem
P =
1
r+1
A +
r
r+1
B.
r(b
1
, b
2
, d) = r(d, b
4
, b
5
) = r(b
2
, b
3
, b
4
) = r(u
0
, u
1
, u
2
) = 1,
b
2
=
1
2
b
1
+
1
2
d, b
4
=
1
2
d +
1
2
b
5
, b
3
=
1
2
b
2
+
1
2
b
4
:
Concret, obt inem
b
2
= (4, 2), b
4
=
_
9
2
,
1
2
_
, b
3
=
_
17
4
,
3
4
_
.
Exercit iul 5.7 Consideram punctele:
b
0
= (0, 2), b
1
= (0, 4), d = (4, 2), b
5
= (4, 2), b
6
= (0, 3)
si numerele reale
u
0
= 1, u
1
= 2, u
2
= 3.
Determinat i poligoanele de control (b
0
, b
1
, b
2
, b
3
) si (b
3
, b
4
, b
5
, b
6
) astfel ncat
curbele Bezier asociate b si

b denite pe intervalele [1, 2], respectiv [2, 3] sa aiba
un racord de clasa (
2
.
31
5.2 Cubice spline
Denit ia 5.8 O cubica spline este o curba polinomiala pe port iuni obt inuta
prin racord de clasa (
2
al unui numar nit de cubice Bezier.
Exemplul 5.9 (i) Aplicat ia : [1, 10] R
2
denita prin
(t) =
_
c(t), daca t [1, 4]
c(t), daca t [4, 10],
unde c si c sunt curbele din exemplul 5.4, este o cubica spline.
Stabilit i dac a b si b
din exercit iul 5.5 dau
nastere unei cubice
spline.
(ii) Aplicat ia : [0, 2] R
2
denita prin
(t) =
_
b(t), daca t [0, 1]

b(t), daca t [1, 2],


unde b si

b sunt curbele din exemplul 5.6, este o cubica spline.
Problema: Ce date sunt suciente pentru a construi o cubica spline?
Observat ia 5.10 (i) O cubica spline este o aplicat ie : [u
0
, u
L
] R
m
cu
proprietatea ca exista o diviziune u
0
< u
1
< . . . < u
L
a intervalului [u
0
, u
L
]
astfel ca [
[uj,uj+1]
sa e cubica Bezier pentru orice j 0, . . . , L si aplicat ia
sa e de clasa (
2
n ecare nod u
j
(j = 1, . . . , L 1).
(ii) Aplicand direct denit ia, rezulta ca obiectele necesare pentru a putea
construi o cubica spline sunt urmatoarele: Scriet i explicit aceste
condit ii pentru L = 2 si
L = 3. un interval [u
0
, u
L
] si o diviziune u
0
< u
1
< . . . < u
L
a acestuia;
un sir de poligoane de control (b
0
, b
1
, b
2
, b
3
), (b
3
, b
4
, b
5
, b
6
), . . . ,
(b
3j
, b
3j+1
, b
3j+2
, b
3j+3
), . . . , (b
3L3
, b
3L2
, b
3L1
, b
3L
) astfel ca:
pentru orice j 1, . . . , L1 punctele b
3j1
, b
3j
, b
3j+1
sunt coliniare si
r(b
3j1
, b
3j
, b
3j+1
) = r(u
j1
, u
j
, u
j+1
);
pentru orice j 1, . . . , L 1 exista un punct d
j
(numit punct de
Boor) astfel ca b
3j2
, b
3j1
, d
j
, respectiv d
j
, b
3j+1
, b
3j+2
sa e coliniare si
r(b
3j2
, b
3j1
, d
j
) = r(d
j
, b
3j+1
, b
3j+2
) = r(u
j1
, u
j
, u
j+1
).
(iii) Sa xam acum un nod u
j
(j 2, . . . , L 1). Avem, asadar,
r(d
j1
, b
3j2
, b
3j1
) = r(u
j2
, u
j1
, u
j
); r(b
3j2
, b
3j1
, d
j
) = r(u
j1
, u
j
, u
j+1
).
Utilizand lema 5.11, deducem:
r(d
j1
, b
3j2
, d
j
) =
u
j1
u
j2
u
j+1
u
j1
, r(d
j1
, b
3j1
, d
j
) =
u
j
u
j2
u
j+1
u
j
. (5.1)
Relat iile (5.1) arata ca putem determina punctele Bezier b
3j2
si b
3j1
n
funct ie de punctele de Boor d
j1
si d
j
; mai precis avem Deducet i relat iile (5.2)
si (5.3) din egalitat ile
(5.1).
b
3j2
=
u
j+1
u
j1
u
j+1
u
j2
d
j1
+
u
j1
u
j2
u
j+1
u
j2
d
j
, (5.2)
b
3j1
=
u
j+1
u
j
u
j+1
u
j2
d
j1
+
u
j
u
j2
u
j+1
u
j2
d
j
. (5.3)
32
Lema 5.11 Fie A, P, Q, B puncte coliniare din R
m
, cu A ,= B si P, Q (AB).
Notam Demonstrat i aceasta
lema n cazul m = 1.
r
1
= r(A, P, Q), r
2
= r(P, Q, B).
Avem urmatoarele relat ii:
r(A, P, B) =
r
1
r
2
r
2
+ 1
, r(A, Q, B) = r
2
(r
1
+ 1).
Teorema 5.12 (Algoritmul Boehm-de Boor) O mult ime ordonata T de
L + 3 puncte
(d
1
, d
0
, d
1
, . . . , d
L+1
)
si un sir de numere reale
u
0
< u
1
< . . . < u
L
denesc o cubica spline. Mult imea T se numeste poligon de Boor al cubicei
spline.
Demonstrat ie. Precizam modul n care se construiesc punctele poligoanelor
de control (b
0
, b
1
, b
2
, b
3
), (b
3
, b
4
, b
5
, b
6
), . . . , (b
3j
, b
3j+1
, b
3j+2
, b
3j+3
), . . . , Scriet i explicit aceasta
demonstrat ie pentru
L = 2 si L = 3.
(b
3L3
, b
3L2
, b
3L1
, b
3L
) care denesc arcele de curba Bezier ce formeaza cu-
bica spline.
Punctele b
0
, b
1
, b
3L1
, b
3L
se aleg astfel:
b
0
:= d
1
, b
1
:= d
0
, b
3L1
:= d
L
, b
3L
:= d
L+1
.
Punctele b
2
si b
3L2
se construiesc pornind de la relat iile r(b
1
, b
2
, d
1
) =
r(u
0
, u
1
, u
2
), respectiv r(d
L1
, b
3L2
, b
3L1
) = r(u
L2
, u
L1
, u
L
), asadar
b
2
=
u
2
u
1
u
2
u
0
d
0
+
u
1
u
0
u
2
u
0
d
1
, b
3L2
=
u
L
u
L1
u
L
u
L2
d
L1
+
u
L1
u
L2
u
L
u
L2
d
L
.
Punctele b
4
, b
5
, . . . , b
3j2
, b
3j1
, . . . , b
3L5
, b
3L4
se construiesc folosind
ecuat iile (5.2), respectiv (5.3).
Punctele b
3
, b
6
, . . . , b
3j
, . . . , b
3L3
se obt in folosind egalitatea de rapoarte
r(b
3j1
, b
3j
, b
3j+1
) = r(u
j1
, u
j
, u
j+1
), adica
b
3j
=
u
j+1
u
j
u
j+1
u
j1
b
3j1
+
u
j
u
j1
u
j+1
u
j1
b
3j+1
, j = 1, . . . , L 1,
ceea ce ncheie demonstrat ia.
Observat ia 5.13 Sirul punctelor de diviziune ale intervalului [u
0
, u
L
] poate
ales astfel ncat sa reecte proprietat i geometrice ale poligonului de Boor. Spre
exemplu, prin metoda lungimii coardei:
u
0
= 0, u
1
= |

d
1
d
1
|,
u
j
= u
j1
+|

d
j1
d
j
|, j = 2, . . . , L 1,
u
L
= u
L1
+|

d
L1
d
L+1
|
diviziunea este aleasa astfel ca lungimea intervalului [u
j1
u
j
] sa e egala cu
lungimea segmentului [d
j1
d
j
] (pentru j = 2, . . . , L 1).
33
Exemplul 5.14 Consideram numerele reale
u
0
= 0, u
1
= 1, u
2
= 2, u
3
= 4 (L = 3).
Fie poligonul de Boor (d
1
, d
0
, . . . , d
4
) xat. Conform algoritmului Boehm-de
Boor denim b
0
:= d
1
, b
1
:= d
0
, b
8
:= d
3
, b
9
:= d
4
. Mai departe, avem
b
2
=
u
2
u
1
u
2
u
0
d
0
+
u
1
u
0
u
2
u
0
d
1
=
1
2
d
0
+
1
2
d
1
; b
7
=
2
3
d
2
+
1
3
d
3
.
Conform aceluiasi algoritm
b
4
= b
322
=
u
3
u
1
u
3
u
0
d
1
+
u
1
u
0
u
3
u
0
d
2
=
3
4
d
1
+
1
4
d
2
b
5
=
1
2
d
1
+
1
2
d
2
, b
3
=
1
2
b
2
+
1
2
b
4
, b
6
=
2
3
b
5
+
1
3
b
7
.
34
Capitolul 6
Curbe Bezier rat ionale
Sa consideram aplicat ia de proiect ie centrala pe planul L de ecuat ie x
3
= 1 Comparat i pozit ia rela-
tiva a dreptelor {( +
1, 1, )| R}
si {(, , 1)|
R} precum si pozit ia re-
lativa a imaginilor lor
prin .

c
: R
3
x[ x
3
= 0 L,
c
(x
1
, x
2
, x
3
) =
_
x
1
x
3
,
x
2
x
3
, 1
_
.
Identicand n mod natural acest plan cu R
2
, obt inem o aplicat ie
: R
3
x[ x
3
= 0 L, (x
1
, x
2
, x
3
) =
_
x
1
x
3
,
x
2
x
3
_
.
Propozit ia 6.1 Fie (a
0
, a
1
, a
2
) un poligon de control din R
3
si e mai departe
a : [0, 1] R
3
, a(t) =

2
i=0
a
i
B
2
i
(t) curba Bezier asociata. Presupunem ca
niciunul din cele trei puncte de control nu este situat n planul de ecuat ie x
3
= 0
si ca nici curba a nu intersecteaza acest plan. Scriem a
i
= (x
1
(a
i
), x
2
(a
i
),
i
)
(i = 0, 1, 2) si denim punctele
b
i
:=
_
x
1
(a
i
)

i
,
x
2
(a
i
)

i
_
= (a
i
) R
2
, i = 0, 1, 2.
Imaginea curbei a prin aplicat ia este curba Avem r(t) = (a(t)),
t in and cont de notat iile
introduse, deducem cu
usurint a relat ia din
enunt .
r : [0, 1] R
2
, r(t) =

2
i=0

i
b
i
B
2
i
(t)

2
j=0

j
B
2
j
(t)
.
Denit ia 6.2 Fie b
0
, b
1
, b
2
puncte din R
2
,
0
,
1
,
2
R numere reale, astfel
ca

2
j=0

j
B
2
j
(t) ,= 0 pe intervalul [0, 1]. Curba
r : [0, 1] R
2
, r(t) =
2

i=0

i
B
2
i
(t)

2
j=0

j
B
2
j
(t)
b
i
se numeste curba Bezier rat ional patratica (CBRP). Punctele b
0
, b
1
, b
2
se numesc puncte de control ale curbei, iar numerele
0
,
1
,
2
se numesc
ponderi ale punctelor de control b
i
.
Exemplul 6.3 Consideram punctele
b
0
= (0, 0), b
1
= (0, 1), b
2
= (1, 0)
si numerele reale

0
= 1,
1
= 1,
2
= 2.
35
Avem
2

j=0

j
B
2
j
(t) = 1 +t
2
,
iar CBRP asociata este Determinat i punctele
de intersect ie dintre
curba b si curba r si
comparat i imaginile lor
geometrice.
r : [0, 1] R
2
, r(t) =
_
2t
2
1 +t
2
,
2t(1 t)
1 +t
2
_
.
(Curba Bezier asociata acestui poligon de control este b(t) = (t
2
, 2t 2t
2
).)
Poligonul de control init ial este dat de punctele
a
0
= (0, 0, 1), a
1
= (0, 1, 1), a
2
= (2, 0, 2).
Exercit iul 6.4 Determinat i CBRP asociata datelor
b
0
= (2, 0), b
1
= (0, 0), b
2
= (0, 1);

0
= 2,
1
= 1,
2
= 1
si precizat i punctele poligonului de control (a
0
, a
1
, a
2
) din care se obt in aceste
date.
Exercit iul 6.5 Putet i determina o curba Bezier rat ional patratica r astfel ca
r(t) =
_
1t
2
1+t
2
,
2t
1+t
2
_
oricare ar t [0, 1]?

In caz armativ, care este poligonul
de control din R
3
init ial?
Propozit ia 6.6 Fie r o curba Bezier rat ional patratica denita de datele init iale
(b
i
,
i
) i = 0, 1, 2.
(i)

In cazul n care cele trei ponderi au aceeasi valoare, ,= 0, (i.e. punctele
a
0
, a
1
si a
2
sunt situate n planul x
3
= ), atunci CBRP asociata r este o curba
Bezier r(t) =

2
i=0
B
2
i
(t)b
i
.
(ii) Au loc relat iile

In proprietat ile (ii) si
(iii) se foloseste fap-
tul c a ponderile extreme
sunt nenule. Acest
fapt rezulta din condit ia

2
j=0
jB
2
j
(t) = 0 pe
intervalul [0, 1].
r(0) = b
0
, r(1) = b
2
,
deci CBRP considerata interpoleaza punctele de extrem.
(iii) Au loc egalitat ile
r

(0) =
2
1

0
(b
1
b
0
), r

(1) =
2
1

2
(b
2
b
1
),
cu alte cuvinte tangentele n punctele extreme sunt direct ionate de vectorii

b
0
b
1
, respectiv

b
1
b
2
(iv) Daca ponderile sunt strict pozitive, atunci CBRP este inclusannfasuratoarea
convexa a punctelor de control.
Observat ia 6.7 Convenind ca punctele de forma (
x1
x3
,
x2
x3
) cu x
3
= 0 sunt si-
tuate la innit, putem extinde denit ia unei CBRP, cerand doar ca ponderile

0
,
1
,
2
sa nu e toate nule, dar acceptand ca expresia

2
j=0

j
B
2
j
(t) sa se
anuleze pe intervalul [0, 1]. Fiind un polinom de grad cel mult doi nenul (de-
oarece ponderile nu sunt toate nule), va avea cel mult doua radacini n acest
interval, deci CBRP obt inuta va avea cel mult doua puncte la innit.
Propozit ia 6.8 O curba Bezier rat ional patratica este un arc de conica. Mai
precis, e CBRP denita de datele (b
i
,
i
), i = 0, 1, 2. Atunci: Este posibil ca o CBRP
sa e inclus a ntr-o co-
nica degenerata?
daca
02

2
1
> 1, curba este un arc de elipsa,
daca
02

2
1
= 1, curba este un arc de parabola,
daca
02

2
1
< 1, curba este un arc de hiperbola.
36
Exemplul 6.9 Sistemul de ponderi (1, 1, 2) conduce la un arc de elipsa, oricare
ar poligonul de control init ial, n vreme ce cu ponderile (2, 3, 2) se ajunge la
arce de hiperbola.
Propozit ia 6.10 Fie r o CBRP denita de (b
0
, b
1
, b
2
,
0
,
1
,
2
). Daca
2

0
>
0, exista o schimbare de parametru astfel r sa e o conica denita de
acelasi poligon de control si de ponderile (1,
1
, 1). O parametrizare a unui arc
de conica denita de un sistem de date de forma (b
0
, b
1
, b
2
, 1,
1
, 1) se numeste
parametrizare standard. Tipul conicei este dat de ponderea
1
:
daca
1
< 1 conica este elipsa;
daca
1
= 1 conica este parabola;
daca
1
> 1 conica este hiperbola.
Propozit ia 6.11 Datele init iale (b
0
, b
1
, b
2
, 1,
1
, 1) denesc un arc de cerc tan-
gent poligonului de control n punctele b
0
si b
2
si situat n acoperirea convexa Cum putem construi un
cerc complet folosind
trei arce de cerc privite
ca CBRP?
a punctelor poligonului de control daca si numai daca sunt vericate condit iile
(i) |

b
0
b
2
| = |

b
1
b
2
| (cu alte cuvinte triunghiul b
0
b
1
b
2
este isoscel cu
[b
1
b
0
] [b
1
b
2
]) si
(ii)
1
= cos(

b
1
b
0
b
2
).
Corolarul 6.12 Parametrizarea arcului de cerc situat n interiorul poligonului
de control (b
0
, b
1
, b
2
) care are extremitat ile b
0
respectiv b
2
este data de
r(t) =
B
2
0
(t)b
0
+ cos B
2
1
(t)b
1
+B
2
2
(t)b
2
B
2
0
(t) + cos B
2
1
(t) +B
2
2
(t)
, t [0, 1],
unde = m(

b
1
b
0
b
2
). Centrul cercului este situat la intersect ia perpendicula-
relor duse pe b
0
b
1
, respectiv pe b
2
b
1
n b
0
, respectiv b
2
.
Exemplul 6.13 Consideram b
0
= (1, 0), b
1
= (1, 1) si b
2
= (0, 1), n particu-
lar =

4
, deci cos =

2
2
si arcul de cerc corespunzator este dat de parametri-
zarea
r(t) =
_
1 + (

2 2)t + (1

2)t
2
1 + (

2 2)t + (2

2)t
2
,

2t + (1

2)t
2
1 + (

2 2)t + (2

2)t
2
_
.
Observat ia 6.14 (i) Punctele unei curbe Bezier rat ional patratice pot de-
terminate e aplicand algoritmul de Casteljau atat numitorului cat si numara-
torului si apoi efectuand mpart irea, e determinand punctele a
0
, a
1
, a
2
din R
3
care prin sunt aplicate n b
i
, aplicand acestor puncte algoritmul de Castel-
jau (cu alte cuvinte determinand puncte ale curbei Bezier asociate a) si apoi
calculand imaginea acestor puncte prin proiect ia .
(ii) Prin analogie cu curbele Bezier rat ional patratice, putem introduce curbe
Bezier rat ionale de grad n din R
m
. Datele cu ajutorul carora construim o astfel
de curba sunt:
poligonul de control (b
0
, . . . , b
n
) din R
m
;
sistemul de ponderi (
0
, . . . ,
n
), nu toate nule.
Curba Bezier rat ionala de grad n asociata acestor date este data de
r(t) =
n

i=0

i
B
n
i
(t)

n
j=0

j
B
n
j
(t)
b
i
, t [0, 1].
Proprietat ile unei astfel de curbe sunt analoage proprietat ilor CBRP.
37
Anexa A
Proiecte
1. Curbe generate de punctele intermediare
Ilustreaza cat mai sugestiv curbele determinate de punctele intermediare de
Casteljau.
2. Invariant a ana a curbelor Bezier.
Ilustreaza cat mai sugestiv proprietatea de invariant a la transformari ane a
curbelor Bezier.
3. Invariant a la combinat ii baricentrice a curbelor Bezier.
Ilustreaza cat mai sugestiv proprietatea de invariant a la combinat ii baricentrice
a curbelor Bezier.
4. Inserarea repetata a unui punct de control.
Ilustreaza cat mai sugestiv ce se ntampla cand inseram n mod repetat un varf
al unui poligon de control.
5. Intersect ia paralelipipedelor minime.
Input: Doua poligoane de control ale unor cubice Bezier.
Output: -Precizeaza daca interioarele paralelipipedelor minime ale celor doua
poligoane de control se intersecteaza sau nu.
-Reprezentare graca (inclusiv desenarea celor doua curbe Bezier).
6. Marirea gradului unei curbe Bezier
Input: Un poligon de control T = (b
0
, . . . , b
n
), k 1.
Output: -Construieste, folosind metoda de marire a gradului, poligoane de
control avand n+2, n+3, . . . , n+k +1 puncte si care genereaza aceeasi curba
Bezier ca si T.
-Reprezentare graca (n cazul n care poligonul de control este din R
2
).
7. Compararea a doua curbe Bezier plane
Input: Poligoanele de control pentru doua curbe Bezier plane.
Output: -Decide daca cele doua poligoane genereaza aceeasi curba Bezier.
-Reprezentare graca.
38
8. Deformarea unei curbe Bezier ntr-o alta curba Bezier
Input: Poligoanele de control pentru doua curbe Bezier plane b
1
si b
2
.
Output: Folosind marirea gradului si invariant a la combinat ii baricentrice,
realizeaza o animat ie cu o familie de curbe de la b
1
la b
2
care sa sugereze
deplasarea lui b
1
nspre b
2
.
9. Subdivizare
Input: Poligonul de control al unei curbe Bezier plane b, [0, 1].
Output: -Determina poligoanele de control ale curbelor b[
[0,]
si b[
[,1]
.
-Reprezentare graca.
10. Racord de clasa (
1
al unor cubice Bezier
Input: Doua poligoane de control T = (b
0
, b
1
, b
2
, b
3
), Q = (c
0
, c
1
, c
2
, c
3
) din
planul R
2
, numere reale u
0
< u
1
< u
2
.
Output: -Stabileste daca b si c (curbele Bezier asociate lui T, respectiv Q si
denite pe [u
0
, u
1
], respectiv [u
1
, u
2
]) au un racord de clasa G(
1
sau (
1
.
-Reprezentare graca.
11. Algoritmul Boehm-de Boor
Input: Un numar natural L, un poligon de Boor (d
1
, d
0
, . . . , d
L+1
) si un sir
de noduri u
0
, . . . , u
L
.
Output: Reprezinta grac cubica spline asociata acestor date.
12. Curbe Bezier rat ional patratice
Input: Coecient ii unor polinoame P, Q, R de gradul 2.
Output: -Determina poligonul de control (b
0
, b
1
, b
2
) si ponderile
0
,
1
,
2
care determina curba Bezier rat ional patratica r(t) =
_
P(t)
R(t)
,
Q(t)
R(t)
_
.
-Reprezentare graca.
39
Anexa B
Algoritm pentru
determinarea curburii unei
curbe Bezier
Consideram punctele
b
0
= (, 0), b
1
= (0, 0), b
2
= (0, )
si e b : [0, 1] R
2
curba Bezier asociata. Ne propunem sa scriem un algoritm
care sa calculeze curbura lui b ntr-un punct dat t
0
.
Calculul matematic preliminar (cu precizarea denit iilor si a rezul-
tatelor folosite)
Conform denit iei 3.12 avem
b(t) =
2

i=0
B
2
i
(t)b
i
= (1 t)
2
(, 0) +2t(1 t)(0, 0) +t
2
(0, ) = ((1 t)
2
, t
2
).
Conform denit iei 1.26 (i), curbura unei curbe 2D se calculeaza dupa formula

b
(t) =
det(b

(t), b

(t))
|b

(t)|
3
.
Avem
b

(t) = (2(t 1), 2t), b

(t) = (2, 2),


|b

(t)|
2
= 4((t 1)
2

2
+t
2

2
).
Pentru , , t pentru care b

(t) nu se anuleaza avem

b
(t) =

2((t 1)
2

2
+t
2

2
)
3
2
.
Analizam acum situat iile n care b

(t) = 0: aceasta condit ie este echivalenta cu


(t 1)
2

2
+t
2

2
= 0 si avem urmatoarele posibilitat i:
(i) (, ) = (0, 0) si t arbitrar. Din punct de vedere geometric, curba se
reduce la un punct si curbura nu este denita pentru niciun t [0, 1].
(ii) = 0, ,= 0 si t = 0. Condit ia = 0 este echivalenta cu b
0
= b
1
, caz
n care curbura nu este denita pentru t = 0, adica n b(0) = b
0
= b
1
.
40
(iii) ,= 0, = 0 si t = 1. Condit ia = 0 este echivalenta cu b
1
= b
2
, caz
n care curbura nu este denita pentru t = 1, adica n b(1) = b
2
= b
1
.
Putem acum scrie algoritmul pentru calcularea curburii.
Input: , , t
0
.
Vericarea datelor de intrare (cu interpretare geometrica):
(i) daca t
0
, [0, 1], atunci t
0
nu apart ine intervalului de denit ie a curbei;
(ii) daca = = 0, curba se reduce la un punct, curbura nu este denita
n niciun punct;
(iii) daca = 0, ,= 0 si t = 0, curbura nu este denita n punctul cerut,
deoarece vectorul viteza este nul n acel punct;
(iv) daca = 0, ,= 0 si t = 1, curbura nu este denita n punctul cerut,
deoarece vectorul viteza este nul n acel punct.

In toate aceste cazuri se trece la ultimul pas.


Calcule: Daca datele de intrare nu se ncadreaza n situat iile de mai sus se
calculeaza

b
(t
0
) =

2((t
0
1)
2

2
+t
2
0

2
)
3
2
.
Output:

In cazurile (i)-(iv) descrise mai sus ment ioneaza ca nu poate
calculata curbura precizand motivul, altminteri scrie curbura
b
(t
0
).
41
Bibliograe
[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. Petrisor, Modelare geometrica algoritmica, Ed. Tehnica, Bucuresti, 2001.
[3] H. Prautzsch, W. Boehm si M. Paluszny, Bezier 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, Computatio-
nal 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, Graca pe calculator. Algoritmi fundamentali, Editura Uni-
versitat ii din Bucuresti, 2001.
-
[8] L. Badescu, Geometrie, Editura Universitat ii Bucuresti, 2000.
[9] M. do Carmo, Dierential Geometry of Curves and Surfaces, Prentice Hall,
1976.
[10] Gh. Galbura si F. Rado, Geometrie, Editura Didactica si Pedagogica, Bu-
curesti, 1979.
[11] A. Gray, Modern Dierential Geometry of Curves and Surfaces with
Mathematica, CRC Press, 1999.
[12] I. Hirica, S. Leiko, L. Nicolescu, G. Pripoae, Geometrie diferent iala. Pro-
bleme. Aplicat ii, Bucuresti, 1999.
[13] M.I. Munteanu, Algoritmi geometrici 2D si aplicat ii n CAGD, Editura Uni-
versitat ii Al. I. Cuza Iasi, 2005.
[14] L. Nicolescu, Curs de geometrie, Bucuresti, 2002.
[15] L. Ornea si A. Turtoi, O introducere n geometrie, Editura Theta, Bucuresti,
2000.
[16] M.S. Stupariu, Geometrie analitic a, Bucuresti, 2008.
42

You might also like