Sunteți pe pagina 1din 59

1.

Complemente de geometrie şi metode de aproximare

1.1. Spaţii vectoriale. Spaţii afine.

Fie N - mulţimea numerelor naturale, Z - mulţimea numerelor întregi, Q -


mulţimea numerelor raţionale, R - mulţimea numerelor reale şi C - mulţimea
numerelor complexe. Un spaţiu vectorial real (respectiv complex) este o mulţime V
pe care este definită o operaţie internă, notată prin simbolul + şi o operaţie de
înmulţire cu elemente din R (resp. C) - numite scalari. Notăm prin V ansamblul (V,
+, . ), când mulţimea de scalari este fixată. Elementele mulţimii V se numesc
vectori. Adunarea vectorilor este comutativă (i1), asociativă (i2), mulţimea V
conţine vectorul zero (i3) şi orice vector are asociat un vector opus (i4):
(i1) u + v = v + u, oricare ar fi u, v ∈ V.
(i2) (u + v) + w = u + (v + w), oricare ar fi u, v, w ∈ V.
(i3) există vectorul 0∈V astfel încât u + 0 = 0 + u = u, oricare ar fi u ∈ V.
(i4) Pentru oricare u ∈ V există un unic vector (în mulţimea V), notat
cu (-u), astfel încât: u + (-u) = 0.
Elementele mulţimii R (resp. C) se mai numesc scalari, deoarece descriu mărimi
care nu depind de vreun punct de referinţă. Înmulţirea cu scalari asociază fiecărui
vector v ∈ V şi fiecărui scalar m ∈ R (resp. C), vectorul (m v) ∈ V şi este supusă
următoarelor axiome:
(i5) (m + n) u = m u + n u, oricare ar fi m, n ∈ R (resp. C) şi u ∈ V.
(i6) m (u + v) = m u + m v, oricare ar fi m ∈ R (resp. C) şi u, v ∈ V.
(i7) m (n u) = (m n) u, oricare ar fi m, n ∈ R (resp. C) şi u ∈ V.
(i8) 1 u = u, oricare u ∈ V, unde 1 ∈ R (resp. C).
Axiomele (i5) şi (i6) descriu faptul că înmulţirea vectorilor cu scalari este distribu-
tivă faţă de adunarea scalarilor, respectiv vectorilor. Axioma (i7) indică un tip de
asociativitate cu care are de-a face atât înmulţirea vectorilor cu scalari cât şi
înmulţirea scalarilor.
În cadrul geometriei euclidiene, imaginea geometrică a unui vector este un
segment de dreaptă AB pe care este definit un sens de la A la B. Punctul A se
numeşte originea vectorului sau punctul său de aplicaţie, iar punctul B este
extremitatea vectorului. Vectorul AB, din punct de vedere geometric, este
caracterizat prin: originea A, suportul definit de dreapta AB, sensul de parcurs de la
A la B şi mărimea sau modulul vectorului, care este lungimea segmentului AB
(notată |AB|). Un vector pentru care aceste elemente sunt fixate se numeşte vector
legat. În grafica pe calculator, se utilizează vectorii alunecători sau liberi, pentru
care punctul de aplicaţie nu mai are un rol esenţial.
Mulţimea vectorilor de poziţie dintr-un plan, cu originea într-un punct al
acestuia este spaţiu vectorial peste R în raport cu adunarea vectorilor (după regula
paralelogramului) şi înmulţirea vectorilor cu scalari. Considerând mulţimea R3, a
tripletelor de numere reale (x, y, z), se obţine un spaţiu vectorial real definind:
u + v = (x1+x2, y1+y2, z1+z2) şi
kw = (kx, ky, kz),
unde u = (x1, y1, z1), v = (x2, y2, z2) şi w = (x, y, z). Extinderea pentru mulţimea Rn
este imediată.
Mulţimea matricelor Mmxn(R) - cu m linii, n coloane şi elemente din
mulţimea R - este spaţiu vectorial real (peste R) în raport cu adunarea matricelor şi
înmulţirea matricelor cu scalari:
A + B = (aij+bij)1≤i≤m, 1≤j≤n,
kA = (kaij)1≤i≤m, 1≤j≤n.
Mulţimea polinoamelor de grad cel mult n, în nederminata X se poate
organiza ca un spaţiu vectorial real dacă considerăm operaţiile: adunarea polinoa-
melor şi înmulţirea unui polinom cu un scalar:
p + q = (pn+qn)Xn+ ... + (p0+q0),
kp = kpnXn + kpn-1Xn-1+ .... + kp0,
unde: p = pnXn+pn-1Xn-1+...+p0, q = qnXn+qn-1Xn-1+...q0, iar k ∈ R.
De asemenea, polinoamele de forma:
a0(x2 + y2) + a1x + a2y + a3 = 0, cu a1, a2, a3 ∈ R (resp. C)
formează un spaţiu vectorial, strâns legat de mulţimea cercurilor din plan.
Fie v1, v2, ..., vn vectori oarecari din spaţiul V şi n scalari k1, k2, ..., kn. O
expresie de forma k1v1 + k2v2 + ... + knvn se numeşte combinaţie liniară a vectorilor
consideraţi. Elementul rezultat în urma evaluării expresiei este tot un vector
(conform regulilor i1-i7). Mulţimea S a tuturor combinaţiilor liniare ale vectorilor
v1, v2, ..., vn se numeşte spaţiul generat de vectorii v1, v2, ..., vn. Este uşor de văzut
că S este un spaţiu vectorial peste R (resp. C). Vectorii v1, v2, ..., vn se numesc
liniar independenţi dacă din k1v1 + k2v2 + ... + knvn = 0 (în V) rezultă k1 = k2 = ... =
kn = 0 (în R, resp. C). În caz contrar, se afirmă liniar dependenţa sistemului de
vectori v1, v2, ..., vn (peste R, resp. C).
Fie v1, v2, ..., vn o mulţime de vectori din V, iar S spaţiul generat de aceştia.
Dacă cei n vectori sunt liniar independenţi, se spune că ei formează o bază a
spaţiului S de dimensiune n. Deoarece aceşti vectori generează spaţiul S, rezultă că
oricare vector v din S se obţine ca o combinaţie liniară a vectorilor v1, v2,, ..., vn.
Deci, există scalarii k1, k2, ..., kn, unic determinaţi, astfel încât:
v = k1v1+ k2v2 + ... + knvn.
În spaţiul Rn, vectorii
e1 = (1, 0, 0, ..., 0),
e2 = (0, 1, 0, ..., 0),
...,
en = (0, 0, ..., 1)
formează o bază a spaţiului Rn, numită baza canonică, care permite descrierea unui
vector v prin cele n coordonate carteziene: v = (x1, x2, …,xn) = x1e1+x2e2+… +xnen.
Considerăm spaţiul vectorial tridimensional, suficient de important pentru
grafica şi proiectarea asistate de calculator. Cele mai importante obiecte cu care se
operează sunt cele de punct şi vector (înţeles ca vector liber). Punctul este precizat
prin poziţia sa, vectorul are modul şi direcţie, dar nu are o poziţie fixată în spaţiu.
Geometric, desenăm punctele planului prin “•“, iar vectorii prin segmente
de dreaptă terminate cu “→“. în general desenăm vectorii pornind dintr-un punct,
dar nu trebuie să uităm că lucrăm cu vectori liberi. Notăm punctele spaţiului prin
A, B, C, ...
Considerăm P o mulţime de puncte din spaţiul euclidian clasic şi spaţiul
vectorial V al vectorilor liberi. Presupunem că între punctele mulţimii P şi vectorii
din V au loc următoarele legături (axiome):

(a1) Pentru oricare două puncte A şi B, există un unic vector u ∈ V astfel


încât u = B - A.

(a2) Pentru fiecare punct A şi pentru fiecare vector u ∈ V, există un unic


punct B, astfel încât u = B - A (vezi legătura cu a1).

În cadrul spaţiului 2D (bidimensional), axioma a2 afirmă că dacă pornim


din punctul A, în direcţia u, la distanţa |u|, găsim punctul B, astfel încât u = B - A
sau, altfel scris, B = A + u.

(a3) Oricare trei puncte A, B şi C satisfac: (A - B) + (B - C) = (A - C).


Axioma a3 corespunde regulei “cap-coadă”.

Fie mulţimile P şi V ca mai sus. Tripletul A = (P, V, ϕ) se numeşte spaţiu


afin dacă ϕ este o aplicaţie de la PxP la V cu proprietăţile:

(o1) ϕ(A, B) + ϕ(B, C) = ϕ(A, C), pentru oricare A, B, C ∈ P (vezi axioma a3).
(o2) Pentru oricare punct O ∈ P şi oricare vector u ∈ V, există un unic punct
M ∈ P astfel încât ϕ(O, M) = u (vezi axioma a2).

Din axiomele de mai sus, rezultă că spaţiile afine au următoarele proprietăţi:

(p1) A - A = 0 (∈V) sau, echivalent: ϕ(A, A) = 0, unde A ∈ P;


(p2) A - B = -(B-A) sau, echivalent: ϕ(A, B) = - ϕ(B, A), unde A, B∈P;
(p3) u + (B-A) = (B + u) - A, unde A, B ∈ P, iar u ∈ V;
(p4) B - (A + u) = (B - A) - u, unde A, B ∈ P, iar u ∈ V;
(p5) B = A + (B - A), unde A, B ∈ P;
(p6) (B + u) - (A + v) = (B - A) + (u - v), unde A, B ∈ P, iar u, v ∈ V.

Fie A şi B două puncte distincte din spaţiul afin A. Expresia C = A + t(B-A),


pentru t ∈ R, descrie un punct care, în spaţiul afin 2D, reprezintă un punct pe
dreapta determinată de punctele A şi B. Observăm că dacă t ∈ [0, 1], atunci C se
află pe segmentul care uneşte punctele A şi B. Dacă, prin convenţie, scrierea C =
(1-t)A + tB defineşte punctul C prin C = A + t (B-A), atunci o expresie de forma C
= a1A+a2B, cu a1 + a2 = 1 va fi numită combinaţie afină a punctelor A şi B. Să
observăm că operaţia introdusă se referă la puncte şi nu la vectori.
Mai general, dacă A1, A2, ..., An sunt puncte, iar a1, a2, ..., an sunt scalari astfel încât
a1 + a2 + ... + an = 1, atunci expresia a1A1 + a2A2 + ... + anAn se numeşte combinaţie
afină şi reprezintă punctul A1 + a2(A2-A1)+ a3(A3-A1) + .... + an(An-A1). Mulţimea
tuturor punctelor generate prin combinaţii afine pornind de la punctele A1, A2, ....,
An formează înfăşurătoarea afină a punctelor A1, A2, ..., An.
Dacă n = 3, combinaţia afină generează un punct din ∆A1A2A3. Este uşor
de văzut că dacă 0 ≤ a1, a2, a3 ≤ 1, atunci punctul rezultat este în interiorul sau pe
laturile triunghiului. Dacă vreun ai este negativ sau supraunitar, atunci punctul
generat se află în exteriorul triunghiului, iar dacă vreun ai este nul, atunci punctul
se va afla pe frontieră.
Considerăm spaţiul afin A. Punctele A0, A1, ..., An sunt afin independente,
dacă vectorii {ϕ(Ai, Ai+1) | i = 0, 1, ..., n-1} sunt liniar independenţi; în caz contrar,
punctele considerate sunt afin dependente. Un sistem de puncte (A0, A1, ..., An) afin
independente se numeşte reper afin de dimensiune n pentru spaţiul A.
Practic, putem considera punctul A0 ca origine a reperului şi vectori liniar
independenţi: u1 = ϕ(A0, A1), u2 = ϕ(A0, A2), ..., un = ϕ(A0, An). Tot ca reper afin
pentru spaţiul afin A este considerat şi ansamblul (A0, u1, u2, ..., un). Rezultă că
reperele conduc la sisteme de coordonate pentru spaţiul afin.
Fiecare spaţiu vectorial poate fi văzut ca un spaţiu afin. Punctele din
spaţiul afin sunt vectori în spaţiul vectorial. Diferenţa dintre două puncte este ca şi
diferenţa vectorilor, iar suma dintre un punct şi un vector este suma ordinară a
vectorilor.
Fie reperul (A0, u1, u2, ..., un). Atunci, oricare punct al spaţiului afin A
poate fi scris, unic, sub forma: M = a1u1 + a2u2 + ... +anun + A0. Definim punctele
Ai = A0 + ui şi a0 astfel încât: a0 + a1 + ... + an = 1. Rezultă că: M = a0A0 + a1A1 + ...
anAn. Ansamblul de scalari (a0, a1, ..., an) defineşte coordonatele baricentrice ale
punctului M relativ la punctele A0, A1, ..., An. Observăm că dacă suma
coordonatelor este unu atunci ele determină un punct, iar dacă este zero, atunci
acestea determină un vector.
Presupunem că un punct M are coordonatele (a1, a2, ...., an, 1) relativ la
reperul (A0, u1, u2, ..., un). Considerăm un nou reper (B0, v1, v2, ..., vn). Ce
coordonate va avea punctul M relativ la acest nou reper? Deoarece (v1, v2, ..., vn)
constituie o bază, putem exprima fiecare dintre vectorii u1, u2, ..., un:
ui = ci,1v1 + ci,2v2 + ... + ci,nvn, i = 1, 2, ..., n.
A0 = cn+1,1v1 + cn+1,2v2 + ... + cn+1,nvn + B0.
Notăm cu C matricea:
 c1,1 c1, 2 L c1,n 0
c c 2, 2 L c 2,n 0
 2,1
C=  M M O M M
 
 c n ,1 cn, 2 L c n ,n 0
c n +1,1 c n +1, 2 L c n +1,n 1

şi cu (b1, b2, ...., bn, 1) coordonatele punctului M relativ la reperul (v1, v2, ...., vn, B0),
atunci
[b1 b2 ... bn 1] = [a1 a2 ... an 1] C.
Această transformare arată utilitatea înmulţirii matricelor pentru realizarea conver-
siei. Să observăm că pentru un spaţiu afin de dimensiune 3 (n = 3), matricea de
trecere este de dimensiune 4.
Alături de puncte, alte tipuri de obiecte utile în modelarea geometrică (din
punctul de vedere al graficii şi proiectării asistate de calculator) sunt: dreptele şi
planele; în general, subspaţiile.
Fie A şi B două puncte ale unui spaţiu afin. Mulţimea punctelor de forma
(1-t)A+tB determină o dreaptă care trece prin punctele A şi B. Dacă considerăm
spaţiul afin euclidian bidimensional şi un reper cartezian şi (xA, yA) (resp. (xB, yB))
coordonatele carteziene ale punctului A (resp. B), atunci dreapta d sub formă
parametrică determinată de punctele A şi B este descrisă prin mulţimea:
d = { ( (1-t)xA+txB, (1-t)yA+tyB ) | t ∈ R}.
Fie A, B şi C trei puncte necoliniare (astfel încât C nu este situat pe dreapta
determinată de punctele A şi B) ale unui spaţiu afin. Planul definit de cele trei
puncte este mulţimea:
π = { (1-s)((1-t)A+tB) + sC | s, t ∈ R },
descrisă parametric (datorită prezenţei parametrilor s şi t).
Fie V un spaţiu vectorial şi o submulţime S a mulţimii V. S este subspaţiu
vectorial al spaţiului vectorial V dacă pentru oricare doi vectori u şi v din S şi ori-
care scalar k, rezultă u + v ∈ S şi ku ∈ S. Subspaţiile spaţiului R3 sunt: originea,
orice dreaptă care trece prin origine, orice plan ce conţine originea şi întregul spaţiu
R3.
O submulţime nevidă a spaţiului vectorial V este un subspaţiu afin dacă
mulţimea S’ = { u - v | u, v ∈ S} este un subspaţiu vectorial al spaţiului V. Dacă
considerăm spaţiul afin euclidian 2D, subspaţiile afine sunt dreptele. Dacă S este o
dreaptă atunci mulţimea S’ este reprezentată de dreapta paralelă cu S, dar care trece
prin originea reperului.
Dacă S este un subspaţiu afin al unui spaţiu vectorial V, atunci S este chiar
un spaţiu afin; elementele tripletului (din definiţie) fiind: P = S, V = S’, iar funcţia
ϕ aplicată asupra a două puncte furnizează diferenţa acestora (care se află în S’).

1.2. Operaţii asupra vectorilor. Aplicaţii

1.2.1. Produse. Distanţe. Unghiuri. Intersecţii

Fie spaţiul vectorial Rn, ale cărui elemente sunt de forma: u = (u1, u2, ..., un)T, unde
simbolul T arată scrierea pe coloană a componentelor vectorului u. Fiind daţi doi
vectori u şi v, produsul scalar al celor doi vectori este numărul real
u1v1 + u2v2 + ... + unvn
şi va fi notat prin <u, v>. Atunci lungimea (mărimea, modulul) unui vector u este
|u| = u, u Un vector unitar este un vector u pentru care |u| = 1. Distanţa dintre
două puncte A şi B ale spaţiului afin n dimensional este definită prin modulul
vectorului B - A.
Produsul scalar permite şi definirea unghiului α dintre doi vectori u şi v ai
spaţiului euclidian n-dimensional:
cos α = <u, v> /(|u| |v|).
Dacă vectorii sunt unitari, în expresia cos α nu mai intervine împărţirea. Dacă cei
doi vectori sunt perpendiculari, atunci produsul lor scalar este nul. Este uşor de
văzut că produsul scalar este distributiv faţă de adunarea vectorilor.
Pentru n = 3 (spaţiul intuitiv), produsul vectorial a doi vectori u şi v este
un vector w (scriem w = u x v), perpendicular pe planul determinat de vectorii u şi
v, cu modulul egal cu aria paralelogramului construit pe cei doi vectori şi
orientarea dată de condiţia ca u, v, w să formeze un triedru drept. Pentru n = 3,
dacă u = u1i + u2j + u3k (i, j, k versorii unitari ortogonali ai sistemului de
coordonate), iar v = v1i + v2j + v3k, atunci
w = (u2v3 - u3v2, u3v1 - u1v3, u3v2 - u2v3).
În grafica şi proiectarea asistate de calculator se poate alege un sistem de
coordonate 3D de tip dreapta sau de tip stânga. Într-un sistem de coordonate
dreapta, o rotaţie pozitivă se defineşte astfel încât privind de pe o axă pozitivă
înspre origine, o rotaţie în sens trigonometric cu 90° transformă o axă pozitivă în
alta (regula mâinii drepte), după cum urmează:
• Axa de rotaţie este Ox: Oy se roteşte spre Oz;
• Axa de rotaţie este Oy: Oz se roteşte către Ox;
• Axa de rotaţie este Oz: Ox se roteşte către Oy.
Mai precis, se numeşte sistem dreapta, un sistem în care pentru rotirea sistemului
faţă de o axă, astfel încât una din celelalte două axe pozitive să se suprapună peste
cealaltă, trebuie ca degetul mare de la mâna dreaptă să fie îndreptat în direcţia axei
faţă de care se face rotaţia.
Într-un sistem de coordonate stânga, o rotaţie pozitivă este în sens antitri-
gonometric dacă se priveşte de pe o axă pozitivă înspre origine (regula mâinii
stângi).
Dacă A, B şi C sunt trei puncte din spaţiul afin 3D standard, atunci
0.5 |(B-A) x (C-A)|
reprezintă aria triunghiului ∆ABC. Dacă cele trei puncte sunt situate în planul xOy
atunci
0.5 <(0, 0, 1)T, (B-A)x(C-A)>
furnizează aria cu semn a triunghiului ABC (este pozitivă dacă punctele A, B şi C
sunt specificate în sens trigonometric (invers acelor de ceasornic) şi negativă, în
caz contrar). Expresia anterioară este un produs mixt: un produs scalar dintre un
vector şi produsul vectorial al altor doi vectori.
Produsul vectorial este distributiv faţă de adunarea vectorilor, asociativ faţă
de înmulţirea cu un scalar şi îşi schimbă semnul dacă schimbăm ordinea factorilor.
Din punct de vedere geometric, valoarea absolută a produsului mixt a trei vectori
reprezintă volumul paralelipipedului construit pe cei trei vectori.
Lucrul cu coordonate omogene facilitează descrierea unei largi clase de
transformări care apar în grafica şi proiectarea asistate de calculator: translaţii,
scalări, rotaţii, întinderi, proiecţii etc.
Fiind dat un punct A(x), pe o axă, dacă există X şi Y două numere finite ce
nu pot fi ambele nule simultan, astfel încât x = X/Y, scriem A(X, Y), numind X şi
Y coordonatele omogene ale punctului A. Se numesc coordonate omogene ale unui
punct A(x,y) din plan (raportat la două axe: Ox şi Oy), tripletul (X, Y, Z) de valori
finite, nu toate nule în acelaşi timp, definit astfel încât x = X/Z şi y = Y/Z. Dacă se
consideră un triedru tridreptunghic şi punctul din spaţiu 3D: A(x, y, z), atunci
cantităţile X, Y, Z şi T, nu toate nule simultan şi finite, definite astfel încât: x =
X/T, y = Y/T şi z = Z/T, constituie coordonatele omogene ale punctului A din
spaţiu.
Se observă că prin înmulţirea coordonatelor omogene ale unui punct A, cu
un scalar nenul k, se obţin tot coordonate omogene pentru acelaşi punct A. Rezultă
că un punct are o infinitate de sisteme de coordonate omogene, proporţionale între
ele. Pentru k = 1, obţinem X = x, Y = y, Z = z şi T = 1 (pentru modele 1D şi 2D, se
obţin relaţii similare). Originea O(0,0,0) are coordonatele omogene (0, 0, 0, 1), iar
un punct A de pe axa Ox are coordonatele carteziene A(a, 0, 0) şi coordonatele
omogene A(a, 0, 0, 1) sau A(1, 0, 0, 1/a). Pentru a → ∞, se obţine punctul de la
infinit: A∞(1, 0, 0, 0). Similar B∞ (0, 1, 0, 0) şi C∞(0, 0, 1, 0) sunt puncte de la
infinit (situate pe axa Oy, respectiv Oz).
Următoarele observaţii sunt importante pentru grafica 2D şi anumite pro-
bleme de modelare geometrică .

Observaţia 1. Folosind legătura spaţiilor vectoriale cu spaţiile afine, un cerc este


mulţimea punctelor P din planul Euclidian real care satisfac o ecuaţie de forma:
a <P, P> + <b, P> + c = 0.
Un cerc real poate fi descris cu ajutorul scalarilor a şi c şi vectorului b care satis-
face condiţia: <b, b> - 4ac ≥ 0. Notând
k=+ b, b − 4ac ,
un cerc este complet definit prin ansamblul (a, b, c, k), cu centrul
q = - b /(2a)
şi raza
r = k / (2*a).
Dacă r = 0 atunci se obţine punctul -b / (2a), iar dacă a = 0, ecuaţia cercului se
poate scrie (<P, v> + 1)(<P, b> + c) = 0, unde v = (0, 0), iar primul factor descrie
linia de la infinit. Rezultă că dreptele se pot reprezenta prin ansamblul (0, b, c, 1).

Observaţia 2. Fiind considerate două drepte (0, bi, ci, 1), i=1, 2, coordonatele omo-
gene ale punctului de intersecţie sunt date de vectorul q obţinut cu ajutorul pro-
dusului vectorial: q = (b1, c1) x (b2, c2) sau, altfel scris,
q = (c1R(b2)-c2R(b1), <b2,, R(b1)>),
unde R(b) := (-by, bx), adică este vectorul b rotit cu 90°. Revenind la coordonate
carteziene, punctul de intersecţie, atunci când există, este:
p = (-c1b2y + c2b1y, c1b1y-c2b1x)/(-b2xb1y + b1xb2y).

Observaţia 3. Fie un cerc (dat prin ecuaţia de la Obs. 1) şi o dreaptă situată la


distanţă finită: <n, p> + d = 0 (sau parametric: p(t) = -t R(n)- dn/<n, n>), punctele
comune (când există) liniei şi cercului satisfac o ecuaţie de forma: At2 + Bt + C= 0,
unde: A = a<n, n>, B = <b, R(n)><n, n> şi C = ad2 - <b, n>d+c<n, n>. Dacă
dreapta este normalizată (<n, n> = 1) atunci complexitatea evaluărilor se reduce
considerabil).

Observaţia 4. Fiind considerate două cercuri (ai, bi, ci, ki), i = 1, 2, axa radicală
(coarda comună când cercurile se intersectează), se obţine ca diferenţă ponderată a
ecuaţiilor celor două cercuri:
<a2b1 - a1b2, p> + (a2c1 - a1c2) = 0.
Punctele de intersecţie ale celor două cercuri se obţin aplicând metoda de la Obs. 3,
pentru a determina punctele de intersecţie dintre oricare cerc şi axa radicală.

Observaţia 5. Ecuaţia unui plan care trece prin punctul P şi are normala v, este
mulţimea punctelor Q astfel încât <Q - P, v> = 0. Distanţa de la un punct R la acest
plan este lungimea proiecţiei vectorului R-P pe vectorul v, adică: |<R-P, v>|/|v|.
Distanţa de la un punct la o dreaptă se calculează similar: Fie d: P(t) = P0 +
tv, t parametru real şi R un punct nesituat pe dreapta d. Atunci <R-P(t), v> = 0,
deci: t* = <(R - P0), v>/<v, v>, iar punctul M, situat pe dreapta d, la cea mai mică
distanţă de punctul R este: P0 + t* v. Rezultă că distanţa dintre R şi d este modulul
vectorului R-M.

Dacă lucrăm cu segmente orientate (segmentul AB este orientat când se precizează


originea segmentului ca fiind A, iar extremitatea segmentului ca fiind B, sensul de
parcurgere fiind de la A la B, pe dreapta determinată de punctele A şi B) şi
considerăm două puncte fixe A şi B, şi un punct variabil M, ce parcurge axa
determinată de punctele A şi B (pe care se introduce un sistem de coordonate)
raportul segmentelor orientate AM şi MB se notează cu k şi variază de la -∞ la +∞.
Când M este mijlocul segmentului AB atunci k = 1. Scriind vectorial M-A = k(B-
M), rezultă: M (1+k) = A + kB (scriere afină), sau M = mA + nB, unde m = 1/(k+1)
şi n = k/(k+1). Valoarea k se mai numeşte şi coordonata baricentrică a punctului
M în raport cu cele două puncte fixe A şi B, iar m şi n sunt ponderile punctelor A,
respectiv B (se mai scrie şi M(m, n) când se specifică faptul că se lucrează cu
coordonate baricentrice).

Observaţia 6. Fiind considerat segmentul AB, specificat prin coordonatele extre-


mităţilor sale A(x1, y1, z1) şi B(x2, y2, z2), coordonatele omogene ale unui punct
M(x, y, z) care împarte acest segment în raportul k, sunt:
M(X1 + µX2, Y1 + µY2, Z1 + µZ2, T1 + µT2),
unde xi = Xi/Ti, yi = Yi/Ti şi zi = Zi/Ti (i = 1, 2), iar µ = kT1/T2.
În legătură cu noţiunile de spaţiu vectorial şi spaţiu afin pot fi definite şi
noţiunile de transformare liniară, respectiv de transformare afină (ca morfisme de
spaţii).
Fie U şi V spaţii vectoriale cu scalari într-un corp C. Se numeşte morfism
al spaţiului U în spaţiul V, orice aplicaţie f : U → V compatibilă cu operaţiile
definite:
(m1) f(u + v) = f(u) + f(v), pentru oricare u şi v ∈ U;
(m2) f(ku) = kf(u), pentru orice u ∈ U şi k ∈ C.
În particular, dacă BU = (e1, e2, ..., en) este o bază (un sistem de coordonate) pentru
spaţiul vectorial n-dimensional U, atunci pentru orice x = ∑i = 1, ..., n xiei ∈ U, rezultă
f(x) = ∑i = 1, ..., n xif(ei).
Dacă BV = (g1, g2, ..., gm) este o bază (sistem de coordonate) pentru spaţiul
vectorial m-dimensional V, atunci
f(ej) = ∑i = 1, ..., m fijgi, j = 1, 2, ..., n.
Rezultă că
f(x) = f(∑j = 1, ..., n xjej) = ∑j = 1, ..., n xjf(ej) = ∑j = 1, ..., n xj ∑i = 1, ..., m fijgi =
= ∑i = 1, ..., m (∑j = 1, ..., nfijxj)gi.
Ansamblul
 f11 L f 1n 

F= M O M 

 f m1 L f mn 
este matricea asociată aplicaţiei liniare f, prin intermediul sistemelor de
coordonate BU şi BV.
O transformare liniară injectivă şi surjectivă se numeşte izomorfism. Este
clar că oricare două spaţii liniare cu aceiaşi scalari şi dimensiuni egale sunt
izomorfe. Mai mult, matricea asociată izomorfismului este inversabilă (are rangul
egal cu dimensiunea spaţiilor).
Dacă U este un spaţiu vectorial şi f este o transformare liniară de la U în U,
atunci f se numeşte endomorfism, iar dacă f este izomorfism atunci transformarea
se numeşte automorfism.
Pentru un spaţiu vectorial U peste un corp de scalari C şi un endomorfism
al său f, se numeşte vector propriu al lui f, orice vector v pentru care există un
scalar µ astfel încât
f(v) = µv.
Scalarul µ, asociat vectorului propriu v ≠ 0U se numeşte valoare proprie a
endomorfismului f. Valorile proprii ale endomorfismului f sunt rădăcinile ecuaţiei
D(µ) = det(F-µI) = 0,
polinomul D(µ) este numit polinomul caracteristic al endomorfismului f şi matricei
F, iar ecuaţia D(µ) = 0, se numeşte ecuaţia caracteristică a transformării f şi
matricei F.
O transformare afină de la un spaţiu afin X = (P1, V1, ϕ1) la un alt spaţiu afin Y =
(P2, V2, ϕ2) este o aplicaţie care conservă combinaţiile afine. Aplicaţia f : X → Y se
numeşte morfism afin dacă pentru orice subspaţiu afin L ⊂ X, f(L) este subspaţiu
afin în Y. O aplicaţie f : X → Y se numeşte aplicaţie afină dacă există o aplicaţie
liniară f’ : V1 → V2 astfel încât f’(AB) = f(A)f(B), pentru oricare două puncte A, B
∈ P1 (se înţelege că f(A) şi f(B) sunt puncte din P2, iar prin AB am notat vectorul
care corespunde punctelor A şi B). Aplicaţia f’ se mai numeşte şi urma lui f sau
aplicaţia liniară tangentă. Se poate uşor arăta că orice aplicaţie afină este un
morfism afin, afirmaţia reciprocă nefiind însă valabilă.
Transformările afine includ: translaţiile, rotaţiile, scalările şi operaţia de
întindere.

1.2.2. Transformări geometrice 2D

Fie A(x,y) un punct din planul XOY şi A'(x', y') punctul obţinut prin aplicarea unei
transformări geometrice 2D.

„ Translaţia

Putem translata puncte din planul (x,y) la noi poziţii prin adunarea unor
cantităţi coordonatelor punctelor. Mai precis, transformarea T care realizează
translaţia punctului A în punctul A' este complet definită de parametrii de
deplasare dx şi dy. Punctul A’ va avea coordonatele:
x' = x + dx, y' = y + dy,
perechea (dx, dy) fiind uneori numită vector de translaţie.
Translatarea unui poligon se va obţine prin aplicarea translaţiei asupra
fiecărui punct al poligonului. Obiectele care reprezintă curbe sunt translatate prin
actualizarea parametrilor modelului obiectului. De exemplu, pentru a schimba
poziţia unui cerc sau a unei elipse se translatează coordonatele centrului şi se
redesenează curba închisă cu noul centru sau se obţin coordonatele noului centru
prin indicarea unui punct ancoră (imaginea iniţială) şi a noii poziţii a acestuia
(după translatare).

„ Scalarea

Modificarea dimensiunii unui obiect se realizează cu ajutorul transformării


geometrice numită scalare. Fie M(xm, ym) un punct din plan considerat fix (punct
pivot) şi A(x, y) un punct supus scalării. Scalarea este specificată prin două numere
reale, numite factorul de scalare pe axa Ox, respectiv factorul de scalare pe axa
Oy (considerând, de fiecare dată, direcţia pozitivă). Scalarea punctului A cu factorii
sx, sy faţă de punctul M înseamnă scalarea vectorului MA:
x' = xm + (x-xm)*sx;
y' = ym + (y-ym)*sy,
punctul obţinut fiind A’(x’, y’). Dacă M coincide cu originea sistemului de
coordonate atunci se obţine scalarea faţă de origine: x’ = x * sx; y’ = y * sy. (aici *
reprezintă operaţia de înmulţire a numerelor reale). Când sx = sy, scalarea se
numeşte uniformă, în caz contrar este o scalare neuniformă. Un factor de scalare
pozitiv determină modificarea de mărime raportată la direcţia pozitivă a axei
corespunzătoare. Pentru un factor de scalare supraunitar are loc o mărire a
reprezentării obiectului. În caz contrar, reprezentarea obiectului se micşorează.
Scalarea unui poligon relativ la origine se poate realiza prin înmulţirea
coordonatelor fiecărui punct cu factorii de scalare corespunzători. Scalarea
uniformă a unui cerc faţă de origine conduce atât la modificarea centrului cât şi la
modificarea razei. Scalarea uniformă a cercului faţă de centrul său conduce numai
la modificarea razei cercului. Dacă scalarea nu este uniformă cercul va fi
transformat în elipsă.

„ Rotaţia

Rotaţia este definită ca modificarea după o traiectorie circulară a


atributelor geometrice care specifică un obiect. Fie R(xr, yr) un centru de rotaţie
(punct fix din plan care nu va fi afectat de transformare) şi α un unghi. Punctul
A'(x', y') obţinut prin transformarea de rotaţie cu un unghi α în jurul punctului R, a
punctului P(x,y) este definit prin:
X' = xr + (x-xr) cos(α) - (y-yr) sin(α);
Y' = yr + (x-xr) sin(α) + (y-yr) cos(α).
Dacă R coincide cu originea atunci se obţine transformarea de rotaţie în jurul ori-
ginii sistemului de coordonate:
x’ = x cos(α) - y sin(α);
y’ = x sin(α) + y cos(α).

„ Reprezentarea matriceală a transformărilor geometrice 2D.

Deoarece, în coordonate omogene, punctele 2D sunt reprezentate prin


triplete, transformările geometrice vor fi reprezentate prin matrice pătratice de
dimensiune 3.
Ecuaţiile de transformare sunt reprezentate prin produsul matriceal de
forma A' = A⋅T, unde A şi A' sunt punctele de mai sus, iar T este transformarea
geometrică considerată.
Translaţia este redată prin formula:
 1 0 0
[x' y ' 1] = [x y 1]  0 1 0 ,
dx dy 1
cu matricea transformării notată prin Tr(dx, dy). Scalarea faţă de origine (cu O(0,0)
punct pivot) are reprezentarea:
s x 0 0
[x ' y ' 1] = [x y 1]  0 sy 0 ,
 0 0 1
cu matricea transformării notată prin S(sx, sy), iar rotaţia faţă de origine este
descrisă prin:
 cos(α ) sin(α ) 0
[x' y ' 1] = [x y 1] − sin(α ) cos(α ) 0 ,
 0 0 1
cu matricea transformării notată, în continuare, prin R(α).
Considerând matricele transformărilor de mai sus (conform proprietăţilor
operaţiilor asupra matricelor), rezultă:
• două translaţii succesive sunt aditive: Tr(dx1, dy1)Tr(dx2, dy2) =
Tr(dx1+dx2, dy1+dy2);
• două scalări succesive sunt multiplicative: S(sx1, sy1)S(sx2, sy2) = S(sx1sx2,
sy1sy2);
• două rotaţii succesive sunt aditive: R(α1)R(α2) = R (α1 + α2);
• oricare din transformările de mai sus poate fi inversată. Transformările
inverse sunt descrise prin: Tr-1(dx, dy) = Tr(-dx, -dy); S-1(sx, sy) = S(1/sx,
1/sy) şi R-1(α) = R(-α).
Expresiile matematice ale scalării şi rotaţiei faţă de un punct oarecare din plan F(xF,
yF), se pot obţine prin aplicarea, în mod succesiv, a următoarelor transformări:
• Translaţia - prin care punctul fix al transformării ajunge în originea
sistemului de axe: Tr(-xF, -yF);
• Scalarea sau rotaţia faţă de origine: S(sx, sy) sau R(α);
• Translaţia inversă celei de la pasul iniţial: Tr(xF, yF).
Pentru realizarea aplicaţiilor grafice sunt utile şi următoarele transformări (unele
sunt cazuri particulare ale transformărilor de mai sus, altele sunt transformări noi):
• Oglindirea faţă de axa Ox: Oglx = S(1, -1);
• Oglindirea faţă de axa Oy: Ogly = S(-1, 1);
• Simetria faţă de origine: Sim = S (-1, -1);
0 1 0


Simetria faţă de prima bisectoare: Sim1 = 1 0 0 ;

0 0 1
0 − 1 0


Simetria faţă de a doua bisectoare: Sim2 = − 1 0 0 ;

 0 0 1
• Forfecarea (întinderea - shear (eng.)) produce distorsionarea obiectului
iniţial. Se specifică prin două numere reale, numite factorul de forfecare
pe axa Ox, respectiv factorul de forfecare pe axa Oy. Notăm factorii de
forfecare prin Fx, respectiv Fy. Transformarea generală de forfecare este
1 Fy 0

dată prin F = Fx 1 0 . Pentru Fx = 0 se obţine forfecarea pe axa

 0 0 1
Oy, iar pentru Fy = 0 se obţine forfecarea pe axa Ox. De exemplu,
aplicată asupra unui pătrat, transformarea de forfecare produce un
paralelogram.
• Oglindirea faţă de o dreaptă oarecare d se poate exprima ca o
transformare compusă din următoarele transformări elementare:
1. Translatare, astfel încât dreapta d să treacă prin origine (d').
2. Rotaţie faţă de origine, astfel încăt dreapta d' să se suprapună
peste una dintre axe.
3. Oglindirea faţă de axa peste care a fost suprapusă dreapta d'.
4. Transformarea inversă rotaţiei de la pasul 2.
5. Transformarea inversă translatării de la pasul 1.
• Scalarea după o direcţie arbitrară. Parametrii de scalare sx şi sy
afectează doar direcţiile x şi y. Dacă S1 şi S2 sunt două direcţii
ortogonale, dar diferite de axele principale, pentru a realiza o scalare
după direcţiile S1 şi S2, se parcurg următoarele etape:
1. Rotaţie astfel încât S1 şi S2 să coincidă cu direcţiile x şi y.
2. Transformarea de scalare;
3. Transformarea inversă celei realizate la pasul 1.
Dacă α este unghiul dintre Ox şi S1 atunci transformarea compusă este:
R(-α) S(sx, sy) R(α).

1.2.3. Transformări geometrice 3D

Metodele utilizate pentru translatarea, scalarea şi rotaţia obiectelor spaţiale sunt


extinderi ale metodelor din grafica 2D cu luarea în considerare a axei Oz. Luând în
considerare extinderea omogenizării şi asupra coordonatelor spaţiale (3D), trans-
formările geometrice tridimensionale se vor exprima cu ajutorul matricelor
pătratice de dimensiune 4.

„ Translaţia 3D

Într-o descriere în coordonate omogene, un punct este translatat din poziţia (x, y, z)
în poziţia (x', y', z') folosind următoarea relaţie:
1 0 0 0
0 1 0 0
[x' y ' z ' 1] = [x y z 1]  .
0 0 1 0
 
dx dy dz 1
Parametrii dx, dy, dz specifică parametrii translatării. Notăm prin Tr(dx, dy, dz)
matricea transformării de translatare. Translatarea unui obiect spaţial se face prin
translatarea fiecărui punct implicat în definirea obiectului respectiv.

„ Scalarea 3D

Matricea de scalare locală, notată prin S(sx, sy, sz), este dată prin:
s x 0 0 0
0 sy 0 0
 ,
0 0 sz 0
 
0 0 0 1
unde parametrii scalării sx, sy, sz pot lua orice valori pozitive. După aplicarea
operaţiei de scalare unui punct de coordonate (x, y, z) noile coordonate ale
punctului vor fi (x’, y’, z’) care se obţin prin: [x’ y’ z’ 1] = [x y z 1] S(sx, sy, sz).
Scalarea uniformă (sx = sy = sz) va păstra nemodificată forma obiectului. În cazul în
care parametrii scalării au valori diferite, se obţine suplimentar o deformare a
obiectului supus transformării.
Scalarea faţă de un punct fix, care poate să aparţină sau nu obiectului de
transformat, se aplică coordonatelor obiectului spaţial prin aplicarea transformă-
rilor: translatarea care aduce punctul fix în originea sistemului, apoi se face
scalarea faţă de origine, iar în final se face translatarea inversă care aduce
punctul fix în poziţia originală. Dacă F(xF, yF, zF) este punctul fix, atunci
coordonatele punctului P’ obţinut prin aplicarea transformării de scalare faţă de
punctul F, aplicată punctului P, se obţin conform relaţiei:
(x’ y’ z’) = (x y z) Tr(-xF, -yF, -zF) S(sx, sy, sz) Tr(xF, yF, zF).
Scalarea globală se obţine folosind următoarea matrice:
1 0 0 0
0 1 0 0
 ,
0 0 1 0
 
0 0 0 t
unde t este factorul de scalare globală (un număr real pozitiv). Pentru t < 1 se
produce o mărire a vectorului de poziţie, iar pentru t > 1 se produce o micşorare a
vectorului de poziţie. Acelaşi efect se poate obţine prin scalarea locală S(1/t, 1/t,
1/t), unde t trebuie să fie număr real nenul.
„ Rotaţia

Specificarea rotaţiei unui obiect spaţial constă în precizarea elementelor:


axă de rotaţie, valoarea unghiului de rotaţie. În aplicaţiile spaţiale, axa de rotaţie
poate avea orientare spaţială arbitrară.
Pornind de la matricea de rotaţie în plan în jurul originii şi ţinând cont de
faptul că în cazul rotaţiei în jurul axei Ox coordonata x nu se schimbă, matricea ce
specifică o rotaţie de unghi α este:
1 0 0 0
0 cos α sin α 0
Rx(α) =  .
0 − sin α cos α 0
 
0 0 0 1
Rotaţia de unghi α, după axa Oy (deoarece coordonata y nu se schimbă, iar Oz se
deplasează către Ox) este descrisă prin matricea de rotaţie:
cos α 0 − sin α 0
 0 1 0 0
Ry(α) =  .
 sin α 0 cos α 0
 
 0 0 0 1
De asemenea, rotaţia unui obiect în planul xOy, faţă de axa Oz poate fi exprimată
matriceal prin:
 cos α sin α 0 0
− sin α cos α 0 0
Rz(α) =  .
 0 0 1 0
 
 0 0 0 1
Matricele pentru rotaţia în sens invers se obţin prin substituirea unghiului α prin (-α).
Compunerea a două rotaţii, una de unghi α şi cealaltă de unghi (-α) va plasa
obiectul în poziţia iniţială. Deoarece R-1 = RT (adică matricea transpusă), matricele
R sunt transformări ortogonale.
Transformările inverse celor de mai sus sunt date prin egalităţile:
• [Tr(dx, dy, dz)]-1 = Tr (-dx, -dy, -dz);
• [S(sx, sy, sz)]-1 = S(1/sx, 1/sy, 1/sz); cu sx ≠ 0, sy ≠ 0, sz ≠ 0;
• [Rx(α)]-1 = Rx(-α);
• [Ry(α)]-1 = Ry(-α);
• [Rz(α)]-1 = Rz(-α);

„ Rotaţia în jurul unei axe paralele cu o axă a sistemului de coordonate

Rotaţia în jurul unei singure axe x', y' sau z' (sistemul de coordonate Ox'y'z' fiind
presupus paralel cu sistemul xyz) se realizează prin compunerea mai multor
transformări, dar în ordinea următoare (deoarece operaţia de compunere nu e
comutativă):
• Translatarea obiectului astfel încât axa sistemului de coordonate x’y’z’
să coincidă cu axa în aceeaşi direcţie, a sistemului de coordonate xyz.
• Rotaţia obiectului în jurul axei specificate.
• Translatarea inversă a obiectului.
Dacă se efectuează mai multe rotaţii în jurul axelor locale x’, y’ sau z’, atunci
originea sistemului de coordonate local trebuie să fie translatată în originea
sistemului de coordonate global, apoi se realizează rotaţia în jurul axei specificate,
precum şi translatarea inversă a sistemului de coordonate local în poziţia iniţială.

„ Rotaţia în jurul unei axe oarecare

Aplicaţiile ce necesită mişcare (simulare, animaţie, robotică) utilizează rotaţii


generale. În acest caz, matricea de transformare se compune din transformări
elementare de translaţie şi rotaţie, care aliniază axa de rotaţie cu una din axele
sistemului de coordonate.
Fie d axa de rotaţie descrisă prin punctul F(xF, yF, zF) şi cosinusurile direc-
toare cx, cy, cz şi α unghiul de rotaţie. Transformarea de rotaţie se obţine prin apli-
carea următoarelor transformării:
1. translatarea punctului F în originea sistemului de coordonate;
2. alinierea vectorului v = cxi+cyj+czk cu una din axele sistemului de
coordonate (i, j şi k sunt versorii axelor sistemului de coordonate);
3. rotaţia, cu unghiul specificat, în jurul axei la care s-a făcut alinierea;
4. transformarea inversă celei de la pasul al doilea;
5. translaţia inversă a celei de la pasul întâi.

„ Oglindirea faţă de un plan al sistemului de coordonate

La oglindirea faţă de planul xOy se inversează doar coordonata z. Coordona-


tele x şi y rămân neschimbate. Similar, pentru oglindirea faţă de planul yOz şi
planul xOz. Deci, matricele asociate transformărilor reprezentând oglindirea faţă
de un plan, sunt:
1 0 00 − 1 0 0 0 1 0 0 0
0 1 0 0 0 1 0 0 0 − 1 0 0
Oxy =  , Oyz =  şi Oxz =  .
0 0 − 1 0 0 0 1 0 0 0 1 0
     
0 0 0 1 0 0 0 1 0 0 0 1

„ Oglindirea faţă de un plan oarecare

Anumite probleme de proiectare asistată de calculator sau de redare grafică nece-


sită oglindirea unui obiect 3D faţă de un plan oarecare, diferit de planele sistemului
de coordonate. Să considerăm planul de oglindire specificat prin punctul P şi vec-
torul normală N la acest plan. Transformarea de oglindire faţă de acest plan este
obţinută prin compunerea următoarelor transformări:
1. translatarea punctului P în originea sistemului de coordonate;
2. alinierea vectorului normală la plan N, la axa z pozitivă (planul de
oglindire devine planul z = 0);
3. oglindirea faţă de planul z = 0;
4. transformarea inversă alinierii de la pasul secund;
5. translatarea inversă celei de la primul pas.

„ Forfecarea

Transformarea de forfecare spaţială este descrisă printr-o matrice de forma:

1 b c 0
d 1 f 0
F=  ,
g h −1 0
 
0 0 0 1
unde b, c, d, f, g şi h sunt factorii de forfecare.
1.3. Elemente de geometrie diferenţială a curbelor şi suprafeţelor

În proiectarea asistată de calculator este necesară construirea unor curbe nu prin


ecuaţii, ci prin forma acestora. Cu alte cuvinte, proiectantul poate aproxima forma
curbei cu ajutorul unei mulţimi finite de puncte.
Formele libere întâlnite în diverse aplicaţii (proiectare inginerească,
arhitectură, artă etc.) sunt modelate analitic prin curbe de interpolare sau prin curbe
de aproximare. Această secţiune prezintă acele aspecte utile atât în modelarea
algebrică (vezi formularea algebrică) cât şi modelarea geometrică cu mijloace
analitice (aşa numita formă geometrică).
Au fost propuse două metode de modelare geometrică a curbelor de formă
liberă. Curbele bazate pe interpolare necesită utilizarea unui număr foarte mare de
puncte intermediare pentru a reprezenta fidel curba reală. Curbele bazate pe
netezirea unui poligon (numit poligon de control) sunt curbe de aproximare şi trec
numai prin anumite puncte ale poligonului de control. Vărfurile poligonului de
control se numesc puncte caracteristice sau puncte de control.
Ecuaţiile de forma y = f(x) sau cele date sub forma g(x, y) = 0, nu pot fi
folosite în modelarea curbelor de interpolare/aproximare deoarece:
a) pentru o valoare particulară a lui x pot exista mai multe puncte pe
curbă (cerc, elipsă, etc.);
b) formele proiectate sunt independente de orice sistem de coordonate,
fiind determinate prin relaţia dintre punctele considerate şi nu prin
relaţia dintre puncte şi un sistem de coordonate fixat;
c) unele curbe de formă liberă sunt neplanare şi nu pot fi reprezentate
prin ecuaţii neparametrice.
Modelarea prin ecuaţii parametrice permite o tratare uniformă a curbelor plane şi a
celor în spaţiu. Ecuaţiile parametrice utilizate sunt de cele mai diverse forme:
ecuaţii liniare, ecuaţii polinomiale (în special cubice), funcţii raţionale etc.
Elemente legate de exprimarea analitică a curbelor de interpolare şi a
curbelor de aproximare vor fi prezentate în secţiunea 2.4. În continuare vom
descrie acele aspecte privind curbele şi suprafeţelor independent de tipul aplicaţiei
practice în care intervin.

1.3.1. Curbe plane

O curbă plană poate fi exprimată analitic prin următoarele metode:


1. obţinerea unei ecuaţii care defineşte una din coordonate ca o funcţie explicită
de cealaltă (exemplu: y = f(x) în coordonate carteziene, r = r(θ) în coordonate
polare etc.);
2. obţinerea unei reprezentări implicite (exemplu: x2/a2 + y2/b2 = 1 reprezintă
ecuaţia elipsei raportată la axele de coordonate);
3. obţinerea unei reprezentări parametrice x = x(t), y = y(t), t ∈ I (exemplu: x = r
cos(t), y = r sin(t), t ∈ [0, 2π] descrie cercul cu centrul în origine şi raza r > 0).
Un arc de curbă plană simplu este mulţimea tuturor punctelor M(x,y) pentru care
y = f(x), x ∈ [a, b],
unde f este o funcţie continuă, cu derivata continuă în toate punctele x din inter-
valul [a, b].
Când reprezentarea este implicită: ξ(x, y) = 0 şi sunt satisfăcute condiţiile
teoremei funcţiilor implicite (pentru a exprima pe y în funcţie de x sau, pe x în
funcţie de y) arcul de curbă este simplu dacă funcţia ξ admite derivate parţiale
continue ce nu se anulează simultan.
Dacă în reprezentarea parametrică considerăm I = [t1, t2], atunci arcul de
curbă este simplu dacă există o corespondenţă biunivocă între M(x,y) şi valorile
parametrului t, funcţiile şi derivatele lor x'(t), y'(t) sunt continue, având loc relaţia:
[x'(t)]2 + [y'(t)]2 > 0. Dacă [x'(t)]2 + [y'(t)]2 = 0, atunci punctul corespunzător valorii
parametrului t (pentru care are loc anularea) se numeşte punct singular.
Un punct prin care curba trece de un număr m de ori este un punct multiplu
al curbei, cu ordinul de multiplicitate m. Coordonatele unui punct dublu al curbei
plane (m = 2) verifică simultan ecuaţia curbei ξ(x,y) = 0 şi ξ'x = 0; ξ'y = 0, fără a
anula toate derivatele parţiale de ordinul doi ale funcţiei ξ. Coordonatele unui
punct multiplu de ordin m verifică simultan ecuaţia ξ(x, y) = 0 şi anulează toate
derivatele parţiale până la ordinul m-1 inclusiv, fără a anula toate derivatele parţiale
de ordinul m.
Se numeşte unghi de contingenţă al unui arc de curbă, unghiul ascuţit
format de tangentele duse la extremităţile arcului. Raportul dintre mărimea
unghiului de contingenţă şi lungimea arcului se numeşte curbura medie a arcului.
Fiind dat un punct x0, curbura unei curbe în punctul x0 este limita curburii medii
când lungimea arcului tinde la zero, raza de curbură fiind definită prin inversul
curburii în acel punct.
Mai precis, dacă curba este definită prin ecuaţia y = f(x) atunci curbura în
punctul x0 este
K = y''(x0)/[1+y'(x0)2]3/2,
iar
R = 1/K.

1.3.2. Curbe în spaţiu

Fie E şi E' două spaţii topologice şi g o aplicaţie a lui E pe E'. Spunem că g este o
aplicaţie homeomorfă dacă este biunivocă şi păstrează operaţia de închidere în sens
topologic adică, dacă A ⊂ E, atunci g(A) = g(A) (atât g cât şi g-1 sunt aplicaţii
continue). Faptul că două mulţimi sunt homeomorfe se defineşte folosind conceptul
de închidere relativă.
Dacă Γ este o mulţime de puncte din spaţiu şi ∆ este un segment de dreaptă
deschis, Γ reprezintă un arc de curbă elementar dacă este homeomorfă cu ∆.
Mulţimea Γ reprezintă o curbă elementară închisă dacă este homeomorfă cu un
cerc. Notăm cu S1 cercul unitate din plan: S1 = { x ∈ R2 | <x, x> = 1}.
Mulţimea Γ de puncte din spaţiu este un arc de curbă simplu, dacă Γ este mulţime
conexă (nu poate fi partiţionată în două mulţimi nevide, disjuncte, cu închideri
disjuncte) şi orice punct din Γ admite o vecinătate (în R3) astfel încât intersecţia
acesteia cu Γ este un arc de curbă elementar.
Revenind la coordonate, Γ este un arc de curbă simplu, dacă coordonatele
x, y, z ale punctelor curbei verifică unul din următoarele sisteme de ecuaţii:
i) F(x, y, z) =0, G(x, y, z) = 0; x ∈ (a1, b1), y ∈ (a2, b2)
ii) z = f(x, y), z = g(x, y); x ∈ (a1, b1), y ∈ (a2, b2)
iii) x = f1(t), y = f2(t), z = f3(t); t ∈ [a, b],
unde funcţiile F, G, f, g, f1, f2, f3 satisfac condiţiile:
a) Sunt funcţii reale şi continue.
b) Funcţiile f1, f2, f3 stabilesc o corespondenţă biunivocă şi bicontinuă între
punctele curbei şi valorile parametrului t.
c) Admit derivate de ordinul I continue.
Arcul de curbă este considerat regulat dacă, în plus:
d) Derivatele de ordinul I nu sunt toate egale cu zero.
e) Cel puţin una dintre matricele iacobian: Jx, Jy, Jz este inversabilă:

∂ F ∂ F ∂ F ∂ F ∂ F ∂ F
∂ y ∂ z ∂ z ∂ x ∂ y
Jx =  , J = ∂ x  , Jz =  .
∂ G ∂ G
∂ G ∂ G y
  ∂ G ∂ G
 ∂ y ∂ z  ∂ z ∂ x  ∂ x ∂ y 
Fie ξ aplicaţia ale cărei componente sunt funcţiile f1, f2, f3. Conceptul de
punct multiplu din cadrul planar se extinde similar la domeniul spaţial. Punctele
singulare, de ordinul q, ale unei curbe, sunt acele puncte care corespund
parametrului t0, pentru care toate derivatele de ordin k (0 ≤ k ≤ q-1) ale funcţiilor f1,
f2, f3 sunt simultan nule, dar [f1(q)(t0)]2 + [f2(q)(t0)]2 + [f3(q)(t0)]2 ≠ 0.
Fie Γ curba: r = r(t), t ∈ (α, β) , AB un arc cu M0 = A, M1, M2, ...., Mn = B,
puncte situate pe arcul AB, astfel încât t0 = a corespunde punctului A, iar tn = b
corespunde punctului B, unde α < a < b < β. Fie li modulul vectorului MiMi+1. Dacă
curba este regulată atunci există şi este unică limita
n -1
lim ∑ l i = s,
n →∞ i = 0

pentru max |li| → ∞. În plus,


b
dr
s= ∫
a
dt
dt ,

iar în reprezentarea pe coordonate obţinem:


b

∫ [ f ' (t)] + [ f ' (t )] + [ f 3 ' (t )] dt .


2 2 2
s= 1 2
a
Dacă A este fix, iar M este un punct curent de pe curba considerată, arcul AM fiind
arc de curbă regulat, atunci lungimea sa s este o funcţie continuă şi derivabilă de t.
Diferenţiala ds a funcţiei s = s(t) se numeşte elementul de arc al curbei Γ. Evident
ds = |dr|.
Noţiunile următoare: tangentă la curbă, plan normal, plan osculator,
binormală, plan rectificant şi triedrul lui Frenet clarifică aspectele geometrice ale
curbelor spaţiale.
Fie Γ o curbă regulată şi punctele M, M0 ∈ Γ. Tangenta la curba Γ în
punctul M0 este poziţia limită a coardei MM0 când M → M0. Fie M0 (x0, y0, z0) cu
vectorul de poziţie r, T tangenta în punctul M0 la curba Γ şi un punct A(X, Y, Z) cu
vectorul de poziţie R situat pe tangenta T. Atunci:
(t1) Dacă Γ: r = r(t), atunci T: R = r + λ dr/dt, unde λ este un scalar.
(t2) Dacă Γ: x = x(t), y = y(t), z = z(t), atunci
T: (X-x0)/dx = (Y-y0)/dy = (Z-z0)/dz.
(t3) Dacă Γ: F(x, y, z) = 0, G(x, y, z) = 0, atunci
T: (X-x0)/Jx(y0, z0) = (Y-y0)/Jy(z0, x0) = (Z-z0)/Jz(x0, y0).
(t4) Dacă τ este versorul tangentei T, atunci τ = dr/ds.
(t5) cosinusurile directoare ale tangentei T se pot exprima prin:
cos α = dx/ds, cos β = dy/ds, cos γ = dz/ds
(proiecţiile pe axele de coordonate ale versorului τ).
Dacă dr/dt x d2r/dt2 = 0 (produs vectorial) atunci tangenta la curba Γ în punctul M0
se numeşte staţionară.
Fie M(x0, y0, z0) ∈ Γ. Un plan πN perpendicular pe tangenta T la curba Γ în
punctul M se numeşte plan normal la curba Γ. Cu notaţiile de mai sus şi A(X, Y,
Z) ∈ πN, ecuaţia planului normal este:
(n1) Dacă Γ: r = r(t), atunci πN: <R - r, dr/dt> = 0.
(n2) Dacă Γ: x = x(t), y = y(t), z = z(t), atunci πN: <A-M, (dx, dy, dz)> = 0.
(n3) Dacă Γ: F(x, y, z) = 0, G(x, y, z) = 0, atunci
πN: (X - x0)Jx(y0, z0) + (Y - y0)Jy(z0, x0) + (Z - z0)Jz(x0, y0) = 0.
Fie M0(x0, y0, z0) şi M ∈ Γ. Planul πo care este poziţia limită a planului ce trece
prin punctul M şi prin tangenta la curba Γ prin punctul M0 când M → M0, când
această poziţie limită există şi este unică, se numeşte plan osculator la curba Γ în
punctul M0 (tangenta în punctul M0 fiind presupusă nestaţionară).
Când Γ este o curbă regulată de cel puţin ordinul doi, M0(x0, y0, z0) un
punct de pe curba Γ de vector de poziţie r, πo planul osculator la curba Γ în punctul
M0, A(X, Y, Z) de vector de poziţie R, aparţinând planului osculator, atunci:
(o1) Dacă Γ: r = r(t), atunci πo: <R - r, dr/dt x d2r/dt2> = 0.
(o2) Dacă Γ: x = x(t), y = y(t), z = z(t), atunci
X − x0 Y − y0 Z − z0
π0: dx dy dz = 0 .
d2x d2 y d2z
Dacă tangenta în M0 este staţionară atunci planul osculator se numeşte staţionar şi
are ecuaţia:
πo: <R - r, dr/dt x dpr/dtp> = 0,
unde p este ordinul primei derivate necoliniare cu vecorul dr/dt. Intersecţia planul
normal şi a planului osculator la curba Γ în punctul M0 se numeşte normală
principală. Fie ν versorul normalei principale.
O normală perpendiculară pe planul osculator ce trece prin punctul M0 se
numeşte binormală la curba Γ. Fie β versorul binormalei (determinat astfel încât
vectorii τ, ν şi β să formeze un triedru drept, adică β = τ x ν). Planul determinat de
tangenta şi binormala la curba Γ în punctul M0 se numeşte plan rectificant. Triedrul
lui Frenet este triedrul drept determinat de versorii τ, ν şi β:
Formulele lui Frenet pentru determinarea versorilor triedrului, ne permit
calculul curburii şi torsiunii unei curbe spaţiale. Mai precis: Fie Γ o curbă regulată,
M(x, y, z) ∈ Γ un punct de vector de poziţie r, ds elementul de arc pe curba Γ şi R
raza de curbură a curbei Γ în punctul M (curbura, K = 1/R, fiind egală cu |dσ/ds|,
unde σ este o curbă pe sfera unitate indicatoare1 a tangentelor la curba Γ).
(c1) Dacă Γ: r = r(s), atunci K = 1/R = | dr/ds x d2r/ds2|.
(c2) Dacă Γ: r = r(t), atunci K = 1/R = |dr/dt x d2r/dt2|/|dr/dt|3.
(c3) Dacă Γ: x = x(t), y = y(t), z = z(t), atunci
K = 1/R = √(A2+B2+C2)/ds3,
unde: A = dyd2z - d2ydz, B = dzd2x - dxd2z şi C = dxd2y - dyd2x.
Fie Γ o curbă regulată, M(x, y, z) ∈ Γ un punct de vector de poziţie r, ds
elementul de arc pe curba Γ şi T raza de torsiune a curbei Γ în punctul M (Torsiu-
nea, K* = 1/T, fiind egală cu |ds/dσ*|, unde σ* este o curbă pe sfera unitate indi-
catoare2 a binormalelor la curba Γ).
(k1) Dacă Γ: r = r(s), atunci K* = 1/T = <dr/ds, d2r/ds2 x d3r/ds3> / |dr/ds x d2r/ds2|2.
(k2) Dacă Γ: r = r(t), atunci K* = 1/T = <dr/dt, d2r/dt2 x d3r/dt3> / |dr/dt x d2r/dt2|2.
(k3) Dacă Γ: x = x(t), y = y(t), z = z(t), atunci K* = 1/T = ∆/(A2+B2+C2), unde:
dx dy dz
2
∆= d x d y d2z ,
2

d 3x d 3 y d3z

1
Curba indicatoare a tangentelor: Fie S o sferă cu raza R = 1 şi centrul în punctul O. Fie τ*
versorul tangentei în punctul M la curba Γ şi M’ un punct pe sfera S astfel încât OM’
determină un vector echipolent cu τ*. Când punctul M parcurge curba Γ în sens direct,
atunci punctul M’ va descrie pe S curba σ numită curba indicatoare a tangentelor sau
indicatoarea sferică a tangentelor.
2
Curba indicatoare a binormalelor: Fie S sfera cu raza R = 1 şi centrul în punctul O. Fie β*
versorul binormalei în M la curba Γ şi M’ un punct pe sfera S astfel încât OM’ determină
un vector echipolent cu β*. Când punctul M parcurge curba Γ în sens direct, punctul M’ va
descrie, pe S, curba σ* indicatoare a binormalelor, numită şi indicatoarea sferică a
binormalelor.
A = dyd2z - d2ydz, B = dzd2x - dxd2z şi C = dxd2y - dyd2x.
O curbă spaţială este o dreaptă dacă şi numai dacă curbura K este nulă, respectiv,
curba este plană dacă şi numai dacă torsiunea K* este nulă.
Se demonstrează că reparametrizările cu ajutorul difeomorfismelor
(aplicaţii bijective h pentru care atât h cât şi h-1 sunt diferenţiabile, cu derivate
parţiale continue până la un anumit ordin) păstrează imaginea grafică a curbei,
lungimea arcelor de curbe regulate, invariază punctele singulare (cu ordinul lor de
multiplicitate) şi punctele staţionare. De asemenea: tangenta, planul normal, planul
osculator, normala principală şi binormala sunt invariante la transformările de
parametri.

1.3.3. Curbe cubice

În reprezentarea parametrică, orice punct al curbei este reprezentat de un


vector P(t) = (x(t), y(t), z(t)). De obicei ecuaţiile parametrice sunt astfel
definite încât parametrul t ia valori în domeniul [0,1]. De exemplu, o elipsă
cu semiaxele a şi b (a > 0, b > 0), situată în planul z = h, poate fi definită
prin următoarele ecuaţii parametrice:
x(t) = a cos (2πt), y(t) = b sin(2πt), z(t) = h.
Pentru o curbă de formă arbitrară este dificil de determinat un singur set de
ecuaţii parametrice care să definească complet forma curbei. Oricare curbă poate fi
reprezentată prin mai multe seturi de astfel de ecuaţii care definesc segmente de
curbă. Uzual se folosesc funcţii polinomiale pentru reprezentarea segmentelor de
curbă. Recent au fost incluse şi polinoamele trigonometrice ca modele importante
în redarea geometrică a curbelor.
Tipul de continuitate între segmentele unei curbe descrie gradul de
netezime al curbei în punctul de contact. Dacă două segmente de curbă au câte o
extremitate comună, atunci curba are continuitate geometrică de ordinul 0. Dacă, în
plus, direcţia tangentelor la cele două segmente de curbă (în punctul de racordare)
este aceeaşi atunci curba are continuitate geometrică de ordinul 1. Dacă v1 şi v2
sunt vectorii tangenţi la cele două curbe, continuitatea geometrică de ordinul 1 se
exprimă prin relaţia v1 = k v2. Continuitatea de ordinul doi cere ca în punctul de
intersecţie cele două segmente de curbă să fie ambele convexe sau concave.
Aproximarea curbelor poate fi realizată prin utilizarea segmentelor de
dreaptă (primitiva grafică polilinie), dar numărul segmentelor trebuie să fie foarte
mare. Pentru a folosi mai puţin spaţiu de memorare se pot folosi curbele
parametrice polinomiale de grad k, k>1. Coeficienţii polinoamelor care modelează
expresia P(t) sunt astfel determinaţi încât să urmeze o anumită traiectorie în spaţiul
3D. În grafică se utilizează şi polinoame de gradul 5, dar cele mai utilizate sunt
polinoamele de gradul 3. Curbele reprezentate cu ajutorul polinoamelor de gradul 3
se numesc curbe parametrice cubice.
Polinoamele cubice care definesc un segment de curbă pot fi scrise sub forma:
x(t) = axt3+bxt2+cxt+dx; y(t) = ayt3+byt2+cyt+dy; z(t) = azt3+bzt2+czt+dz;
0 ≤ t ≤ 1,
iar matriceal, acest lucru se poate scrie:
P(t) = (x(t), y(t), z(t)) = UC,
unde U = [t3, t2, t, 1], iar C este matricea coefiecienţilor polinoamelor cubice.
Un segment de curbă P(t) poate fi descris prin coordonatele extremităţilor
şi prin tangentele în anumite puncte. Cum sunt 12 coeficienţi necunoscuţi (numiţi
şi coeficienţi algebrici ai curbei), este necesar a se specifica o curbă cubică prin
patru puncte.
Forma algebrică a curbelor nu este suficient de intuitivă. Ea nu permite
controlul formei curbe, proprietate foarte importantă în domeniul proiectării
asistate de calculator. O specificare adecvată proiectării asistate de calculator
descrie explicit condiţiile geometrice impuse curbei. Astfel de condiţii, numite şi
condiţii de frontieră, conduc la reprezentarea curbelor sub formă geometrică. În
funcţie de condiţiile geometrice impuse se obţin mai multe modele de curbe de
interpolare/aproximare.
În grafica pe calculator, trasarea unui segment de curbă definit prin ecuaţii
parametrice necesită determinarea unor puncte de pe curbă pentru t ∈[tmin, tmax].
Curba poate fi aproximată prin considerarea (afişarea) punctelor determinate sau
prin considerarea (afişarea) segmentelor de dreaptă care unesc punctele determinate.

1.3.4. Suprafeţe

Fie Σ o mulţime de puncte din spaţiu. Σ defineşte o suprafaţă regulată (sau un petic
- eng.: patch - de suprafaţă regulată), dacă coordonatele x, y, z ale punctelor M(x,
y, z) ∈ Σ sunt generate folosind unul dintre următoarele modele matematice:
1. F(x, y, z) = 0
2. z = f(x, y)
3. x = f1(u, v), y = f2(u, v), z = f3(u, v), u ∈ (a1 , b1), v ∈ (a2 , b2),
unde funcţiile de mai sus satisfac următoarele condiţii de regularitate (netezime):
a) sunt funcţii reale, continue;
b) admit derivate parţiale (pentru F, f, f1, f2, f3) de ordinul I, continue, nu toate nule
simultan;
c) funcţiile f1, f2, f3 stabilesc o corespondenţă biunivocă şi bicontinuă între punctele
M ale mulţimii Σ şi perechile ordonate (u, v), unde u, v sunt parametrii reali;
d) cel puţin una dintre matricele iacobian: J1,2, J2,3, J3,1 este inversabilă:
∂ f1 ∂ f1  ∂ f2 ∂ f2  ∂ f3 ∂ f3 
 v  , J2,3 = ∂ ∂ v  , J3,1 = ∂ v .
J1,2 =  ∂ u ∂
∂
u u ∂
∂ f2 ∂ f2  f3 ∂ f3  ∂ f1 ∂ f1 
     
∂ u ∂ v ∂ u ∂ v ∂ u ∂ v
Spunem că Σ are ordinul n dacă funcţiile (pentru modelul considerat) de mai sus
admit derivate până la ordinul n-1, inclusiv, astfel încât nu toate derivatele de
acelaşi ordin să fie nule. Un punct M al suprafeţei în care sunt verificate toate
condiţiile a) - d) se numeşte punct regulat (de ordin corespunzător), în caz contrar
se numeşte punct singular.
Dacă considerăm reprezentarea parametrică - dată prin iii) - suprafaţa Σ se poate
reprezenta vectorial prin:
r = r(u, v), unde r(u, v) = f1(u, v)i + f2(u, v)j + f3(u, v)k, u ∈ (a1, b1), v ∈ (a2, b2),
iar i, j, k sunt versorii unitari ai axelor de coordonate.
Mulţimea punctelor M(x, y,z) ∈ Σ , pentru care coordonatele x, y , z se pot
exprima sub forma:
x = f1(u(t), v(t)), y = f2(u(t), v(t)), z = f3(u(t), v(t)), t ∈ (a, b)
formează o curbă, numită şi curbă trasată pe suprafaţa Σ.
Se numeşte curbă coordonată de tipul u (resp. v) o curbă Γu ⊂ Σ
(resp. Γv ⊂ Σ) care satisface:
Γu: x = f1(u, v*), y = f2(u, v*), z = f3(u, v*),
unde v* este o constantă (resp. Γv: x = f1(u*, v), y = f2(u*, v), z = f3(u*, v) unde u*
este o constantă).
Printr-un punct M0 al unei suprafeţe regulate trece o singură curbă
coordonată Γu şi o singură curbă coordonată Γv. Astfel, cele două familii de curbe
coordonate formează o reţea de curbe trasate pe suprafaţa Σ (prin fiecare punct al
suprafeţei trece o unică curbă din fiecare familie, iar tangentele printr-un punct M
la două curbe, nesituate în aceeaşi familie, sunt distincte.
Scriind vectorial: ∂r/∂u, ∂r/∂v sunt vectori tangenţi la curbele coordonate
Γu, respectiv Γv în punctul M(f1(u*,v*), f2(u*,v*), f3(u*,v*)), iar în cazul unei
suprafeţe regulate sunt necoliniari.
Fie Σ o suprafaţă regulată. Dacă M ∈ Σ şi Ξ este mulţimea tuturor curbelor
Γ care trec prin punctul M, atunci mulţimea tuturor tangentelor la curbele Γ în
punctul M este conţinută într-un plan. Acest plan este numit plan tangent la
suprafaţa Σ în punctul M şi va fi notat prin πT(M).
Pentru elementele ce pot defini o suprafaţă, notăm:
ru = ∂r/∂u, rv = ∂r/∂v, ruu = ∂2r/∂u2, ruv = ∂2r/∂u∂v, rvv = ∂2r/∂v2,
xu = ∂f1/∂u, xv = ∂f1/∂v, xuu = ∂2f1/∂u2, xuv = ∂2f1/∂u∂v, xvv = ∂2f1/∂v2,
yu = ∂f2/∂u, yv = ∂f2/∂v, yuu = ∂2f2/∂u2, yuv = ∂2f2/∂u∂v, yvv = ∂2f2/∂v2,
zu = ∂f3/∂u, zv = ∂f3/∂v, zuu = ∂2f3/∂u2, zuv = ∂2f3/∂u∂v, zvv = ∂2f3/∂v2.
Fie Σ o suprafaţă regulată, πT(M) planul tangent la suprafaţa Σ în punctul M(x, y, z)
şi P(X, Y, Z) ∈ πT(M). Dacă r este vectorul de poziţie al punctului M, iar R este
vectorul de poziţie al punctului P, atunci ecuaţia planului πT(M) are una din
formele:
t1) Dacă Σ: r = r(u, v) atunci πT(M): <R-r, ru x rv> = 0.
t2) Dacă Σ: x = f1(u, v), y = f2(u, v), z = f3(u, v) atunci
X-x Y-y Z-z
πT(M): xu yu zu = 0.
xv yv zv
t3) Dacă Σ: z = f(x, y), atunci
πT(M): (X-x)∂f/∂x + (Y-y)∂f/∂y - (Z-z) = 0.
t4) Dacă Σ: F(x, y, z) = 0, atunci
πT(M): (X-x)∂F/∂x + (Y-y)∂F/∂y + (Z-z)∂F/∂z = 0.
Fie Σ: r = r(u, v), o suprafaţă regulată, M(x, y, z) un punct nesingular, Γu şi Γv
curbe coordonate ce trec prin punctul M, iar ru şi rv vectorii tangenţi la aceste
curbe. Vectorul N = ru x rv, definit astfel încât N, ru şi rv să formeze un triedru
drept, se numeşte vectorul normal la suprafaţa Σ în punctul M. Versorul n al
vectorul N este:
n = ( ru x rv ) / ∆ * ,
unde
∆* = A*2 + B*2 + C*2 = (yuzv-yvzu)2 + (zuxv - zvxu)2 + (xuyv-xvyu)2.
Normala la suprfaţa Σ, în punctul M, este o dreaptă dN perpendiculară pe
planul tangent la suprafaţa Σ în punctul M. Normala dN se orientează astfel încât
sensul pozitiv al ei să coincidă cu sensul versorului n (partea suprafeţei orientată
spre sensul pozitiv al normalei va fi considerată pozitivă, cealaltă faţă se consideră
negativă).
Cu notaţiile de mai sus, iar Q(X, Y, Z) un punct al dreptei normale dN cu
vectorul de poziţie R:
n1) Dacă Σ: r = r(u, v) atunci dN: R - r = k n, unde k este un scalar.
n2) Dacă Σ: x = f1(u, v), y = f2(u, v), z = f3(u, v) atunci
dN: (X-x)/A* = (Y-y)/B* = (Z-z)/C*,
unde A* = yuzv-yvzu, B* = zuxv - zvxu, C* = xuyv-xvyu.
n3) Dacă Σ: z = f(x, y), atunci
dN: (X-x)/∂f/∂x = (Y-y)/∂f/∂y = - (Z-z).
n4) Dacă Σ: F(x, y, z) = 0, atunci
dN: (X-x)/∂F/∂x = (Y-y)/∂F/∂y = (Z-z)/∂F/∂z.
Evident, două suprafeţe sunt tangente într-un punct, când în punctul respectiv, au
acelaşi plan tangent şi sunt considerate ortogonale dacă normalele în acel punct
sunt perpendiculare.
În grafica şi proiectarea asistate de calculator, un rol important este jucat
de suprafeţele riglate şi de suprafeţele de rotaţie. Suprafeţele de rotaţie sunt
generate de o curbă Γ care se roteşte fără alunecare, în jurul unei axe fixe d.
Suprafeţele generate prin deplasarea unei drepte ∆ (generatoare) sunt
numite suprafeţe riglate. Suprafeţele cilindrice, suprafeţele conice sunt exemple de
suprafeţe riglate.
Dacă ∆ este o dreaptă determinată de punctul M0 (cu vectorul de poziţie r0)
şi de direcţia a, iar M ∈ ∆ este un punct curent (cu vectorul de pozitie r) atunci
suprafaţa riglată Σ generată de dreapta ∆ (supusă unei legi de mişcare) are ecuaţia:
r = r0(v) + u a(v), unde u şi v sunt parametri reali.
Curbele Γu obţinute pentru o valoare v constantă sunt generatoarele
suprafeţei riglate Σ. Curba dată de ecuaţia r = r0(v) este curba din spaţiu pe care se
sprijină generatoarele şi este numită curbă directoare. Dacă generatoarea ∆ se
mişcă păstrând aceeaşi direcţie, atunci suprafaţa riglată este un cilindru (sau
suprafaţă cilindrică), iar dacă generatoarea trece printr-un punct fix M0 (curba
directoare degenerează în punctul M0) atunci suprafaţa riglată este un con (sau
suprafaţă conică). Când generatoarea în mişcare, rămâne paralelă cu un plan fix,
numit plan director), suprafaţa obţinută se numeşte suprafaţă riglată cu plan
director.
Un caz particular de suprafeţe riglate îl reprezintă suprafeţele desfăşu-
rabile. Se numeşte suprafaţă desfăşurabilă o suprafaţă riglată Σ pentru care planul
tangent πT la suprafaţa Σ în punctul M ∈ Σ rămâne constant, atunci când punctul M
parcurge o generatoare oarecare ∆ a suprafeţei Σ. Condiţia necesară şi suficientă ca
suprafaţa riglată
Σ: r = r0(v) + u a(v), u, v parametrii reali,
să fie o suprafaţă desfăşurabilă este ca
dr0 da
< ,a × >= 0 .
dv dv
Se poate demonstra că orice suprafaţă desfăşurabilă este sau o suprafaţa cilindrică,
sau o suprafaţă conică, sau este locul geometric al tangentelor la o curbă în spaţiu.
Dacă considerăm o curbă Γ: r = r(u(t), v(t)) trasată pe suprafaţă Σ: r = r(u,
v), atunci diferenţiala lungimii arcului unei curbe de pe suprafaţă poate fi
exprimată prin relaţia: ds = |dr|. Deoarece dr = ru du + rv dv, rezultă
ds2 = |dr|2 = <dr dr> = |ru|2du2 + 2<ru, rv> dudv + |rv|2dv2.
Cu notaţiile:
E = |ru|2 , F = <ru, rv>, G = |rv|2,
obţinem:
ds2 = Edu2 + 2F dudv + Gdv2 ,
expresie cunoscută ca prima formă pătratică diferenţială. De asemenea, vectorul
normal la suprafaţă: N = ru x rv are modulul:
|N| = EG − F 2 .
Dar
ds = E (du/dt) 2 + 2 F (du(dt)(dv/dt) + G(dv/dt) 2
Prin urmare, dacă M1 şi M2 sunt două puncte de pe curba Γ, ce corespund valorilor
t =t1 şi t=t2, obţinem că lungimea s a arcului M1M2 este:
t2 2 2
 du   du  dv   dv 
s= ∫
t1
E  + 2F   + G  dt .
 dt   dt  dt   dt 
Dacă Γ1 şi Γ2 sunt două curbe situate pe aceeaşi suprafaţă Σ având comun
punctul M, iar τ1 şi τ2 sunt versorii tangentelor, în M, atunci se consideră că
unghiul dintre vectorii τ1 şi τ2 furnizează unghiul dintre curbele Γ1 şi Γ2. Notând cu
dri, dui, dvi, dsi diferenţialele de-a lungul curbei Γi. i=1, 2 şi cu ψ unghiul dintre
curbe, adică ψ = ∠(dr1, dr2), obţinem:
cos ψ = <dr1, dr2>/(|dr1| |dr2|).
Efectuând calculele, rezultă:

E du 1du 2 + F(du 1dv 2 + dv1du 2 ) + Gdv1dv 2


cos ψ = .
Edu + 2Fdu 1dv1 + Gdv12 Edu 22 + 2Fdu 2 dv 2 + Gdv 22
2
1

Dacă ψ = π/2, curbele Γ1 şi Γ2 sunt ortogonale în punctul M.


Curbele de pe o suprafaţă care au proprietatea că planul osculator în
punctul curent conţine normala la suprafaţă în acel punct se numesc linii geodezice.
Fie Σ o suprafaţă regulată şi {(Γ), (Γ*)} o reţea de curbe pe Σ. Reţeaua
considerată este ortogonală pe Σ dacă în oricare punct M ∈ Σ, curbele Γ1 ∈ (Γ) şi
Γ2 ∈ (Γ*) care trec prin M sunt ortogonale.
Considerăm o porţiune de suprafaţă regulată Σ: r = r(u, v). Dacă Σ se
împarte în (m x n) paralelograme curbilinii cu ajutorul familiilor de curbe
coordonate Γu şi Γv, iar M0,0, M1,0, M1,1, M0,1 sunt vârfurile paralelogramului Σi,j, fie
M0,0 = Γu ∩ Γv, M1,0 = Γu+∆u ∩ Γv,
M1,1 = Γu+∆u ∩ Γv+∆v şi M0,1 = Γu ∩ Γv+∆v,
unde:
Γu: v = vi; Γv : u = ui; Γu+∆u: v = vi + ∆vi; Γv+∆v: u = ui + ∆ui
sunt curbele coordonate ce determină paralelogramul curbiliniu cu vârful ancoră
M00(ui, vi), 0 ≤ j ≤ m, 0 ≤ i ≤ n. Aria paralelogramului construit cu vectorii: rui∆ui,
rvj∆vj este
∆σij = |rui x rvj| ∆ui∆vj.
Aria porţiunii regulate Σ, ce o notăm prin σ, este, când limita de mai jos există şi
este unică,
σ = lim n ->∞, m ->∞, max |∆ui|->0, max |∆ui| ->0∑j = 0, ...,m∑i = 0, ..., n∆σij.
În condiţiile de regularitate impuse suprafeţei Σ, obţinem:
σ= ∫∫
Σ
EG − F 2 dudv ,
cu E, F şi G definiţi mai sus. Expresia EG − F 2 dudv , notată prin dσ se numeşte
element de arie (sau de suprafaţă).
Dacă Σ: x = x(u, v), y = y(u, v), z = z(u, v) atunci aria şi elementul de arie
au, respectiv, expresiile
σ = ∫∫ A*2 + B *2 + C *2 dudv, dσ = A*2 + B *2 + C *2 dudv ,
Σ
unde
yu zu zu xu xu yu
A* = ; B* = ; C* = .
yv zv zv xv xv yv
Dacă Σ: z = z(x, y) , atunci aria şi elementul de arie sunt date de expresiile:
σ = ∫∫ 1 + p 2 + q 2 dxdy , dσ = 1 + p 2 + q 2 dxdy ,
Σ
unde p = ∂z/∂x; q = ∂z/∂y.
Dacă Σ: F(x, y, z) = 0, atunci
2 2 2 2 2 2
 ∂F   ∂ F   ∂F   ∂ F   ∂F   ∂F 
  +   +     +  + 
 ∂x   ∂y   ∂ z   ∂x   ∂y   ∂z 
σ = ∫∫ dxdy , dσ = dxdy .
Σ
∂F ∂F
∂z ∂z
Fie Σ o suprafaţă regulată, P∈Σ un punct curent (de vector de pozitie r) si
n versorul normalei la suprafaţa Σ în punctul P. După efectuarea calculelor rezultă:

p1) Dacă Σ: r = r(u,v) atunci <n, d2r> = L du2 + 2M dudv + N dv2 , unde
L = <ru, rv x ruu> / |ru x rv|, M = <ru, rv x ruv> / |ru x rv| şi N = <ru, rv x rvv> / |ru x rv|.

p2) Dacă Σ: x = x(u, v), y = y(u, v), z = z(u, v), atunci


<n, d2r> = L du2 + 2Mdudv + Ndv2,
unde
xu yu zu xu yu zu xu yu zu
1 1 1
L= xv yv zv ; M = xv yv zv şi N = xv yv zv
∆* x yuu z uu ∆ *
xuv y uv z uv ∆* x y z
uu vv vv vv

cu
∆* = A*2 + B*2 + C*2 = EG-F2, A* = yuzv - yvzu, B* = xvzu-xuzv şi C* = xuyv - xvyu.

p3) Dacă Σ: z = z(x, y) atunci


1
<n, d2r> = (rd x2 + 2sd x d y + td y2 ) ,
1+ p + q
2 2

unde p = ∂z/∂x, q = ∂z/∂y, r = ∂2z/∂x2, s = ∂2z/∂x∂y şi t = ∂2z/∂z2.

Expresia <n, d2r> din egalităţile de mai sus se numeşte a doua formă fundamentală
a suprafeţelor.
Legătura dintre cele două forme fundamentale se exprimă cu ajutorul
următoarelor elemente: raza de curbură a unei curbe trasate pe suprafaţă şi unghiul
dintre versorii tangentei la curbă într-un punct P (de vector r) şi versorul normalei
la suprafaţă în acelaşi punct. Mai precis, dacă Γ este o curbă trasată pe suprafaţa Σ
care trece prin punctul P, τ este versorul tangentei la curba Γ în punctul P, n este
versorul normalei la suprafaţa Σ în punctul P, θ este unghiul format de versorii τ şi
n, iar R este raza de curbură a curbei Γ în punctul P, atunci
cosθ R = < n, d 2 r > ds 2 .
Fie Σ o suprafaţă regulată, M ∈ Σ, (Γ) o familie de curbe trasate pe
suprafaţa Σ tangente în punctul M, τ versorul tangentei comune la curbele Γ în
punctul M, n versorul normalei la suprafaţa Σ în punctul M şi πn un plan ce trece
prin punctul M determinat de versorii τ şi n. Curba Γn ce rezultă prin intersecţia
suprafeţei Σ cu planul πn se numeşte secţiune normală asociată familiei de curbe (Γ).
Fie Γ o curbă din familia considerată anterior, R si Rn razele de curbură ale
curbelor Γ şi Γn. Dacă θ = ∠(τ, n) şi θn = ∠(νn, n) (cu νn versorul binormalei)
atunci
cosθ cosθ n
= .
R Rn
Cum Γn este situată în planul πn determinat de versorii τ şi n, rezultă că n şi νn sunt
situaţi pe aceeaşi dreaptă suport (cu acelaşi sens sau de sens contrar), adică
cos θn = ±1.
Expresia ±1/Rn notată prin 1/ρn se numeşte curbura normală a curbei Γ în punctul
M. Evident, 1/ρn = cos θ/R. Expresia sin θ/R notată cu 1/ρg se numeşte curbura
tangenţială (geodezică) a curbei Γ în punctul M.
Din exprimarea formelor fundamentale ale unei suprafeţe regulate rezultă:
2
 du  du
L  + 2 M +N
1 Ldu + 2Mdudv + Ndv
2 2
dv dv
= =  2 .
ρ n Edu + 2 Fdudv + Gdv
2 2
 du  du
E  + 2F +G
 dv  dv
Dacă notăm k:=1/ρn şi m:=du/dv obţinem:
k = (Lm2+2m+N)/(Em2+2F+G).
Prin rotirea planului determinat de versorii n şi τ în jurul versorului n, expresia
anterioară este o funcţie continuă şi derivabilă (de variabila reală m):
k(m) = (Lm2+2m+N)/(Em2+2F+G).
Valorile extreme ale funcţiei k(m) (maximum absolut şi minimum absolut)
se numesc curburi principale pe suprafaţa Σ şi sunt notate prin k1, respectiv k2.
Razele de curbură principală sunt inversele curburilor principale. Produsul K :=
k1k2 reprezintă curbura totală (curbura lui Gauss), iar H := (k1+k2)/2 defineşte
curbura medie în punctul considerat. Dacă se cunosc coeficienţii E, F, G (ai primei
forme fundamentale) şi L, M, N (ai celei de-a doua forme fundamentale), valorile
k1 si k2 sunt rădăcinile ecuaţiei:
(Ek-L)(Gk-N)-(Fk-M)2 = 0.
Pentru suprafeţe desfăşurabile rezultă L = M = 0 şi K = 0, iar pentru suprafeţe
riglate L = 0 şi K = 0 (când suprafaţa este desfăşurabilă) sau K<0 (când suprafaţa
nu este desfăşurabilă). Suprafeţele de translaţie sunt obţinute pentru M = 0, iar cele
de rotaţie pentru F = 0 şi M = 0.
1.4. Interpolare şi aproximare

1.4.1. Polinoame de interpolare

În grafica şi proiectarea asistate de calculator se întâlnesc probleme de interpolare


şi aproximare a curbelor. Să presupunem că se cunoaşte mulţimea de perechi (ti, yi),
i = 0, 1, ..., n cu nodurile t0, t1, ..., tn, distincte două câte două, situate în intervalul
[a, b]. Se cere construirea unei funcţii astfel încăt f(ti) = yi. Pentru t ∈ [a, b], f(t)
reprezintă o valoare de interpolare. Pentru t∈[a, t0) ∪ (tn, b] valoarea f(t) este una
de extrapolare. În mod frecvent pentru funcţia f se consideră modele polinomiale.
Evident, de cele mai multe ori, modelul polinomial introduce erori, dar este cel mai
simplu model de interpolare. Eroarea de interpolare este nulă numai dacă valorile yi
sunt valorile unei funcţii polinomiale de grad n, caz în care funcţia f devine
identică cu funcţia care a generat valorile. Dacă f este un polinom de gradul n,
f = a0Xn + a1Xn-1 + ... + an,
astfel încât f(ti) = yi, i = 0, 1, ..., n, sistemul algebric liniar obţinut permite deter-
minarea coeficienţilor aj, în mod unic, deoarece determinantul sistemului este de tip
Vandermonde, iar valorile ti sunt distincte două câte două. Notând cu Li polinomul
definit astfel încât
Li(t) = C (t-t0)(t-t1)...(t-tn),
observăm că Li(tj) = 0 ori de câte ori j≠i. Putem alege constanta C astfel încât
Li(ti)=1, adică:
(t − t 0 )(t − t 1 )...(t − t i −1 )(t − t i +1 )...(t − t n )
Li(t) = .
(t i − t 0 )(t i − t 1 )...(t i − t i −1 )(t i − t i +1 )...(t i − t n )
Modelul
n
f(t) = ∑ y L (t)
i =0
i i

reprezintă polinomul lui Lagrange şi este un polinom de interpolare. Alte exprimări


pentru polinomul de interpolare Lagrange pot fi obţinute cu ajutorul diferenţelor
finite (formele lui Newton şi forma lui Gauss [49]).
Să presupunem că valorile yi sunt generate cu ajutorul unei funcţii
derivabile, h, definită pe intervalul [a, b]: yi = h(ti). Presupunem că sunt date şi
valorile zi = h’(ti). Dacă dorim obţinerea unui model polinomial de interpolare f,
acesta trebuie să satisfacă condiţiile: f(ti) = yi şi f’(ti) = zi. El va fi obţinut prin
interpolare Hermite.
Mai general, considerăm t1, ..., tm o mulţime finită de valori distincte (chiar
numere complexe) şi r1, r2, ..., rm o mulţime de numere naturale. Fie
n = (r1 +1) + (r2+1) + ... + (rm+1) = r1 + r2 + ... + rm + m.
Există un polinom unic F, de grad cel mult n-1, care satisface relaţiile:
F(j)(ti)=yi,j, i = 1, 2, ..., m; j = 0, 1, ..., ri,
unde yi,j sunt valori reale sau complexe date. Dacă se lucrează cu numere reale
atunci toţi coeficienţii polinomului F sunt reali. În ipoteza că ri = 0, i = 1, 2, ..., m
atunci se obţine modelul Lagrange, iar dacă ri = 1, i = 1, 2, ..., m, atunci se obţine
problema de mai sus cu yi, 0 = yi, iar yi,1 = zi.
Se ştie [49] că
w(t)
F(t) = ∑i =1 ∑
m ri
y i, j h i, j (t − t i ) j ,
(t − t i )1+ ri j= 0

unde
m
w(t) = ∏ (t − t )
i =1
i
ri +1

şi
1 ri − j 1  (t − t )1+ ri 
(k)

hi,j = ∑ (t − t i ) k  i

  .
j! k =0 k!  w(t)  
t =ti

Notând cu Li,j polinomul de grad cel mult n-1, care satisface relaţiile
i, j (t l ) = δ il δ jk
L(k)
(cu δij = 1, pentru i = j şi δij = 1 în caz contrar), pentru toţi indicii i, j, k din formula
modelului F şi pentru l = 1, 2, ..., m, atunci
m ri
F(t) = ∑∑ y
i =1 j= 0
ij L i, j (t) .

Dacă r1 = r2 = ... = rm = 1, atunci


m
w(t) 1 w' ' ' (t i )
F(t) = 2 ∑ (t − t )
i =1
2
(y i,0 +y i,1 (t − t i ))
w' ' (t i )
− y i,0 (t − t i )
3(w' ' (t i )) 2
i
Valorile t1, t2, ..., tm se mai numesc şi noduri (simple) de interpolare. În cazul în
care valorile yi,j sunt considerate în legătură cu o funcţie h definită în vecinătatea
fiecărui punct ti (i = 1, 2, ..., m) şi, pentru oricare i = 1, 2, ..., m, funcţia h admite
derivate până la ordinul ri în punctul ti, iar yi,j = h(j)(ti), i=1, 2, ..., m; j = 0, 1, ..., ri,
atunci soluţia f a problemei de mai sus se numeşte polinomul de interpolare
Hermite al funcţiei h în punctele t1, t2, ..., tm, cu ordinele de multiplicitate r1, r2, ...,
rm. Valoarea acestui polinom, în punctul t, va fi notată prin
F(h; x1, x2, ..., xn; t),
unde valorile x1, x2, ..., xn sunt cele n puncte (grupate cu ordinele de multiplicitate
date):
t 1 ,...., t 1 , t 2 ,...., t 2 , ...., t m ,...., t m .
1
424
3 1
424
3 1424
3
de 1+ r1 ori de 1+ r2 ori de 1+ rm ori

Observăm că în notaţia pentru F putem permuta punctele x1, x2, ..., xn, cu condiţia
păstrării corespondenţei valorilor funcţiei h şi a derivatelor acesteia.
Coeficientul lui xn-1 în polinomul F se numeşte diferenţa divizată a funcţiei
h relativă la nodurile x1, x2, ... xn şi se notează cu h[x1, x2, ..., xn]. Evident h[xi] =
h(xi). Au loc următoarele egalităţi:
d1) Dacă x1 ≠ x2 atunci h[x1, x2] = (h(x1) - h(x2))/(x1 - x2).

d2) Polinoamele de interpolare şi diferenţele divizate satisfac următoarea formulă


de recurenţă:

F(h; x1, x2, ..., xn; t) = F(h; x1, x2, ..., xn-1, t) + h[x1, x2, ..., xn](t-x1)(t-x2)...(t-xn-1).

d3) Polinomul de interpolare satisface formula lui Newton:

F(h; x1, x2, ..., xn; t) = h[x1] + h[x1, x2](t-x1) + ... + h[x1, x2, ..., xn](t-x1)(t-x2)...(t-xn).

d4) Dacă x1 ≠ xn atunci h[x1, x2, ..., xn]=(h[x1, x2, ..., xn-1] - h[x2, x3, ..., xn])/(x1 - xn).

d5) Dacă funcţia h este definită în vecinătatea punctului xi şi admite derivată de


ordinul k-1 în punctul xi, atunci h[ x i ,...., x i ] = h(k-1)(xi)/(k-1)!.
1
424
3
de k ori
d6) Pentru oricare t din mulţimea pe care este definită funcţia h avem:

h(t) = F(h; x1, x2, ...,, xn; t) + h[x1, x2, ..., xn, t](t-x1)(t-x2)...(t-xn).

d7) Dacă notăm prin L(h; x1, x2, ..., xn; t) polinomul care ia valorile h(xi) în punctele
distincte xi ( i = 1, 2, ..., n), atunci:

L(h; x1, x2, ..., xn; t) = [(t-xn)L(h; x1, x2, ..., xn-1;t)-(t-x1)L(h; x2, x3, ..., xn;t)]/(x1 - xn).

Observăm legătura între numărul nodurilor (cu multiplicitatea fiecăruia) şi gradul


polinomului de interpolare. Este cunoscut faptul că polinoamele de grad mare
cauzează ondulaţii în curbă (fenomenul Runge-Méray). De aceea, din punct de
vedere practic, se utilizează polinoame de grad mic, în general cel mult 5.
Deşi pun probleme legate de evaluarea funcţiilor trigonometrice, polinoa-
mele trigonometrice de interpolare joacă un rol important în probleme de modelare
matematică. Proprietăţile polinomului de interpolare trigonometrică pot fi găsite în
[47].
În secţiunile următoare se va lucra cu funcţii polinomiale (în sens clasic şi
în sens trigonometric) pe porţiuni, care îndeplinesc anumite condiţii de regularitate.

1.4.2. Funcţii spline polinomiale

Fie Pn spaţiul vectorial (peste R) al polinoamelor de grad n, de o singură variabilă,


ce are dimensiunea n+1. Fie [a,b] un interval al axei reale şi m ≥ 1 un număr întreg.
Considerăm mulţimea nodurilor T = {t1, t2, ..., tm-1} cu elemente ti ∈ (a, b) aranjate
astfel încât a < t1 < t2 ... < tm-1 < b şi mulţimea ordinelor de multiplicitate r = {r1, r2,
..., rm-1} cu elemente numere naturale egale cel mult cu k. Definim t0 := a şi tm := b.
Notăm Pk,T,r spaţiul vectorial al funcţiilor polinomiale pe porţiuni definite pe
intervalul [a, b], de grad k, cu racord de clasă ri-1 în punctul ti, pentru i = 1, 2, ..., m-1
(Un racord de tip -1 nu pune nici o condiţie, un racord de tip p cere ca funcţia să fie
derivabilă de p ori şi derivata de ordin p să fie continuă). Notăm cu x+ rezultatul
evaluării expresiei (x>0)? x :0. Cu alte cuvinte, dacă x > 0 atunci x+ = x, altfel x+ =
0. Pentru spaţiul Pk,T,r sunt valide următoarele afirmaţii:

p1) Spaţiul vectorial Pk,T,r are dimensiunea (k+1)m-(r1 + r2 + ... +rm-1).

p2) Funcţiile (x-ti)j+ (pentru i = 0, 1, ..., m-1 şi j = ri, ri+1, ..., k), restrânse la inter-
valul [a, b], formează o bază pentru spaţiul vectorial Pk,T,r.

Un caz particular important de funcţii polinomiale pe porţiuni este reprezentat de


mulţimea funcţiilor spline3 pentru care r1 = r2 = ... = rm-1. În acest caz dimensiunea
spaţiului vectorial este m+k. Dintre acestea exemplificăm situaţia k = 3 (funcţiile
spline cubice).

Exemplu (Funcţii spline cubice de interpolare): Fie Mi(ti, yi) (cu i = 0, 1, ..., m)
m+1 puncte din plan şi α, β numere reale. Atunci există o unică funcţie spline
cubică f astfel încât curba y = f(x) să treacă prin punctele Mi şi să verifice : f'(a)=α
şi f'(b)=β.
Cele m+3 condiţii impuse conduc la un sistem liniar cu m+3 ecuaţii şi m+3
necunoscute de rang maxim, deci cu soluţie unică.
În general:
• funcţiile spline polinomiale sunt uşor de stocat, manipulat şi evaluat cu
ajutorul sistemelor de calcul;
• derivatele şi primitivele funcţiilor spline polinomiale sunt uşor de
evaluat;
• zerourile funcţiilor spline polinomiale au poroprietăţi similare cazului
polinomial;
• matricele şi determinanţii care apar în lucrul cu funcţiile spline
polinomiale au proprietăţi convenabile calcului numeric;
• funcţiile spline polinomiale de grad mic sunt flexibile, iar oscilaţiile
asociate polinomamelor nu mai apar.
Fie ... ≤ t-1 ≤ t0 ≤ t1 ≤ t2 ≤ ... o secvenţă de numere reale şi p > 0 un număr natural.
Pentru o valoare x fixată, fie hx(t) = (x-t) p-1+. Pentru oricare x număr real, definim
Qi,p(x) = (-1)phx[ti, ti+1, ..., ti+p], dacă ti < ti+p
şi
Qi,p(x) = 0, în caz contrar.
Qi,p se numeşte funcţia B-spline de ordinul p asociată nodurilor ti, ti+1, ..., ti+p.

3
Termenul de “funcţie spline” a fost introdus de către Schoenberg (1946), pentru rezolva-
rea unor probleme de analiza datelor, motivat şi de mecanismul “spline” utilizat în
proiectarea navală.
Pentru p = 1, se obţine:

Qi,1(x) = 1/(ti+1-ti) dacă x ∈ [ti, ti+1), iar Qi,1(x) = 0, în caz contrar.

Calculând, efectiv, diferenţele divizate se obţin următoarele rezultate:

b1) Dacă ti < ti+1 = ... = ti+p, atunci

Qi,p(x) = (x-ti)p-1/(ti+p-ti)p pentru x ∈ [ti, ti+p) şi Qi,p(x) = 0, în caz contrar.

b2) Dacă ti = ti+1 = ... = ti+p-1 < ti+p, atunci

Qi,p(x) = (ti+p - x)p-1/(ti+p-ti)p pentru x ∈ (ti, ti+p) şi Qi,p(x) = 0, în caz contrar.

iar aplicând proprietăţile diferenţelor divizate obţinem următoarele relaţii de


recurenţă:

b3) Dacă p>1 şi ti<ti+p, atunci pentru oricare x real rezultă:

Qi,p(x) = (x-ti)Qi,p-1(x) + (ti+p - x)Qi+1,p-1(x))/(ti+m-ti).

b4) Pentru ti < ti+p, derivata la dreapta D+Qi,p are următoarea exprimare:
D+Qi,p(x) = (p-1)(Qi,p-1(x)-Qi+1, m-1(x))/(ti+m-ti).

Un rol important în prelucrarea datelor de cercetare şi proiectare asistate de


calculator este jucat de funcţiile B-spline normalizate: Ni,p(x) = (ti+p-ti)Qi,p(x).
Proprietăţile şi algoritmii ce caracterizează aceste instrumente, utile pentru mode-
larea curbelor şi suprafeţelor, vor fi prezentate în capitolul 4.

1.4.3. Funcţii spline trigonometrice de interpolare

Funcţiile spline trigonometrice au fost studiate iniţial de Schoenberg (1964). S-a


arătat că orice funcţie spline trigonometrică se poate exprima ca o combinaţie
liniară de anumite funcţii B-spline trigonometrice. Lyche şi Winther (1979) au
studiat diferenţele divizate trigonometrice şi au dedus o relaţie de recurenţă pentru
evaluarea funcţiilor B-spline trigonometrice. O metodă pentru obţinerea funcţiilor
spline de interpolare utilizează funcţiile B-spline, aşa cum se prezintă în
Schumaker (1981). Folosind teoria algebrică a polinoamelor, Ahlberg, Nilson şi
Walsh (1967) descriu o modalitate alternativă pentru obţinerea funcţiilor spline
cubice de interpolare. Lucrarea [48], folosind teoria algebrică a polinoamelor
trigonometrice dezvoltată în [47] şi idea folosită de Ahlberg, Nilson şi Walsh,
prezintă două construcţii ale funcţiilor spline trigonometrice cubice de interpolare.
Fie n>0, un număr natural, R1[X] - mulţimea polinoamelor trigonometrice
de forma:
n
2i − 1 2i − 1
u(x) = ∑ (a cos(
i =1
i
2
X) + b i sin(
2
X)) ,

cu coeficienţi reali, numite polinoame de grad impar şi R2[X] mulţimea polinoa-


melor trigonometrice de forma:
n
v(x) = a0 + ∑ (a cos(iX) + b sin(iX))
i =1
i i

cu coeficienţii a0, a1, ..., an şi b1, b2, ..., bn numere reale, numite polinoame de grad
par. Gradul unui polinom trigonometric este n când an ≠0 sau bn ≠ 0 şi se notează
prin δu.
Fie S1 = {(x,y) | x2+y2 = 1, x, y ∈ R}. Dacă θ ∈ S1, fie cosθ = pr1θ şi sinθ =
pr2θ. Fie p ∈R1[X]∪R2[X], elementul (cos(θ/2), sin(θ/2)) ∈ S1 este o rădăcină a
polinomului p, cu ordinul de multiplicitate k dacă
k
 X −θ 
p(X) =  sin  p1[X],
 2 
unde p1 ∈R1[X]∪R2[X] şi
X −θ
sin
2
nu este un divizor al polinomului p1. Scrierea de mai sus are la bază dezvoltarea:
X −θ θ X θ X
sin = cos sin − sin cos .
2 2 2 2 2
Se poate arăta [vezi Ichim 1993] că θ/2 ∈ S1 este o rădăcină a polinomului u cu
ordinul de multiplicitate k, dacă şi numai dacă
u(θ/2)=Du(θ/2)= ... =Dk-1u(θ/2) = 0 şi Dku(θ/2) ≠ 0.
Două elemente θ1/2 şi θ2/2 din S1 se numesc distincte dacă
θ1/2 ≠ θ2/2 şi θ1/2 ≠ (-cos(θ2/2), -sin(θ2/2)).
Pentru a obţine funcţiile trigonometrice spline de interpolare şi alte modele de tip
trigonometric următoarele propoziţii sunt esenţiale.

Propozitia 1.4.1 (Teorema 6 [46]). Fie m+1 elemente din S1 de forma (cos(θi/2),
sin(θi/2)), i = 0, 1, ..., m, (n0, n1, ..., nm)T un vector cu m+1 componente numere
naturale nenule astfel încât n+1: = n0 + n1 + ... + nm. Fie, de asemenea, n+1 numere
reale f(i)j, j = 0, 1, ..., m, i = 0, 1, ..., ηj := nj-1.Atunci există un polinom
trigonometric (numit polinomul trigonometric de interpolare Hermite) u ∈ R1[X]
∪ R2[X] cu δu ≤ n, astfel încât
Diu(θj/2)=f(i)j, j = 0, 1, ..., m, i = 0, 1, ..., ηj.
În plus, dacă n = 2k (respectiv n = 2k-1) atunci există o bază (numită baza
Hermite) Hj,i în {p| p ∈ R2[X] şi δp ≤ 2k} (respectiv în {p | p ∈ R1[X] şi δp ≤ 2k-1})
astfel încât
(DlHj,i)( θt/2) = δjtδil, 0 ≤ j, t ≤ m, 0 ≤ i ≤ ηj, 0 ≤ l ≤ ηt
şi
u(x) = ∑j=0,...,m∑i=0, ..., ηj f(i)j Hj,i(x).

Dacă m = 0, baza de mai sus se numeşte bază Taylor, care se obţine şi prin
propoziţia ce urmează.

Propoziţia 1.4.2. Pentru p un număr natural nenul, notăm Mp := 2p/p!. Atunci:

t1) Dacă n0 = 2k+1 atunci baza Taylor, notată prin (T2k,j)j = 0, 1, ..., 2k, satisface urmă-
toarele relaţii:
T2k,2k(x) = M2k (sin (x-θ0)/2)2k
şi
T2k,j-1(x) = DT2k,j(x)+(L2k+1qj)(x0)T2k,2k(x),

unde pentru j = 1, 2, ..., 2k, qj(x) = (x-x0)j/j!, x0 este un număr real, iar
L2k+1 = D∏i=1, ..., k(D2+i2I).
t2) Dacă n0 = 2k atunci baza Taylor, notată prin (T2k-1,j)j = 0, 1, ..., 2k-1, satisface urmă-
toarele relaţii:
T2k-1,2k-1(x) = M2k-1 (sin (x-θ0)/2)2k-1
şi
T2k-1,j-1(x) = DT2k-1,j(x)+(L2kqj)(x0)T2k-1,2k-1(x),

unde pentru j = 1, 2, ..., 2k-1, qj(x) = (x-x0)j/j!, x0 este un număr real, iar
L2k = D∏i=1, ..., k(D2+(2i-1)2/4I).
Propoziţia 1.4.3 (Teorema 9, [46]). Fie m+1 elemente distincte din mulţimea S1:
(cos(θi/2), sin(θi/2)), i = 0, 1, ..., m şi (n0, n1, ..., nm)T un vector cu m+1 componente
numere naturale nenule astfel încât n+1: = n0 + n1 + ... + nm. Fie, de asemenea, n+1
numere reale f(i)j, j = 0, 1, ..., m, i = 0, 1, ..., ηj := nj-1. Dacă (Hj,i)j = 0, 1, ..., ; i = 0, 1, ..., ηj,
este baza Hermite şi u este polinomul trigonometric Hermite de interpolare, pentru
aceste date, atunci:
i
 x −θ j  η j −1
 u ( j)  θ j  ( j)
Hj,i(x) =  sin  g j ( x) ∑  D p i  Tη j −i , p ( x) ,
2  gj  2
  p =0   
unde
n
m
 x −θt  t
gj(x) := ∏ 
t≠ j 
sin
2 
 ,

(T(j)..,p) este baza Taylor corespunzătoare punctelor considerate, iar


i
 x −θ j  ( j)
T ( j)
n ,i ( x) =  sin  u i ( x) .
 2 
Deci:
i η −i
m ηj
 x −θ j  j  p u i( j )  θ j ( j)
u(x) = ∑ g j ( x )∑ f j
(i )
 sin
2
 ∑ D
 gj
( )Tη −i , p ( x) .
 2 j
j =0 i =0   p =0  

Fie [a, b] un interval al axei reale şi ∆: x0, x1, ..., xn o diviziune cu n+1 puncte astfel
încât: a = x0 < x1 < ... < xn = b. De asemenea, fie f:= (fi) i=0, 1, ..., n numere reale.
Funcţia s∆,f de clasă C2 pe [a, b] cu proprietăţile:
• s∆,f(xi) = fi; i = 0, 1, ..., n
• s∆,f restricţionată la intervalul [xi-1, xi] este un polinom trigonometric de
grad (impar) cel mult 3; i = 1, 2, ..., n
se numeşte funcţie spline cubică de tip trigonometric cu respectarea diviziunii ∆ şi
care interpolează datele fi în nodurile xi. Se spune că funcţia spline s∆,f este
periodică, de perioadă b-a, dacă satisface egalităţile:
Dp s∆,f(a+) = Dp s∆,f(b-), pentru p = 0, 1, 2.
Pentru demonstrarea propoziţiei 2.4.5, este nevoie de elementele bazei Hermit în
cazul a două noduri, cu ordinul 2 de multiplicitate.

Propoziţia 1.4.4. Fie α, β două numere reale diferite. Notăm cu H[α, β,0], H[α, β,
1], H[β, α, 0] şi H[β, α, 1] baza Hermite a spaţiului polinoamelor trigonometrice
de grad impar cel mult 3, ataşată nodurilor α, β cu ordinele de multiplicitate nα = nβ
=2. Atunci:
Dk(H[α, β, i])(γ) = δαγ δki şi Dk(H[β, α, i])(γ) = δβγ δki, γ∈{α, β} şi k, i ∈ {0, 1}.

În plus:
x−β
sin 2
2  β −α x −α β −α x −α 
H[α, β, 0](x) =
β − α sin 2 cos 2 + 2 cos 2 sin 2 
sin 3
2
şi
 x −α  2 x − β  2 β −α 
H[α, β, 1](x) = 2 sin   sin   / sin  .
 2   2   2 
Permutând pe α cu β se obţin polinoamele H[β, α, 0] şi H[β, α, 1].

Propoziţia 1.4.5. Fie ∆ := {xi | i = 0, 1, ..., n} o diviziune a intervalului [a, b] cu b-a


< 2π şi f:= {fi | i = 0, 1, ..., n} un vector cu n+1 componente. Dacă o funcţie spline
s∆,f cubică de tip trigonometric interpolează datele f în nodurile ∆ atunci
mi := Ds∆,f(xi), i = 0, 1, ..., n,
verifică sistemul liniar:
ρi+1mi + 2mi+1+ λi+1mi+2 = di+1, i = 0, 1, ..., n-2,
unde:
hi:= xi+1-xi, ρi+1 := sin(hi+1/2)/sin((hi+1+hi)/2),
λi+1 := sin(hi/2)/sin((hi+1+hi)/2)
şi
 hi h 
3 1  hi +1 f i +1 − f i cos 2 f cos i +1 − f i +1 
hi i + 2 2
di+1 := sin + sin .
2 hi +1 + hi  2 h i 2 hi +1 
sin sin sin
2  2 2 

Demonstraţie. Fie i ∈ {0, 1, ..., n-2}, j ∈ {i, i+1} şi pj polinomul trigonometric de


grad 3:
pj(x) = fjH[xj, xj+1, 0](x) + mjH[xj, xj+1,1](x) +
+ fj+1H[xj+1, xj, 0](x) + mj+1H[xj+1, xj, 1](x).

Folosind prop. 1.4.4. pentru α := xj, β := xj+1 şi considerând hj:= xj+1-xj, obţinem:
 27 3 x − x j +1 − 2 x j
[ ]
H " x j , x j +1 ,0 ( x) =
1

x j +1 − x j  4
sin
2
+
3
8 sin
2
9 3( x − x j +1 ) 3 x + x j +1 − 2 x j 3 x − x j +1
+ sin − sin − sin −
4 2 2 2 4 2
3 x − 3 x j +1 + 2 x j 
− sin 
4 2 
şi
 3x − 2 x j +1 − x j
[ ]
H " x j , x j +1 ,1 ( x) =
1
x j +1 − x j 9 sin
2

8 sin 2 
2
x − 2 x j +1 + x j x − xj 
− sin − 2 sin .
2 2 
Deci
3 h hi
H " [xi , xi +1 ,0]( xi +1 ) = cos i sin 2
2 2 2
şi
hi
H " [xi , xi +1 ,1]( xi +1 ) = 1 sin .
2

Interschimbând xj şi xj+1, în relaţiile de mai sus, obţinem


3 1 3
H " [xi +1 , xi ,0]( xi +1 ) = − +
2 hi 4
sin 2
2
şi
hi
cos
H " [xi +1 , xi ,1]( xi +1 ) = 2 2.
hi
sin
2
Rezultă că:
hi   h
cos   2 cos i
3 2 +m 1 3 1 3 2.
pi" ( xi +1 ) = f i i + f i +1  − +  + mi +1
2 h h  2 h 4 h
sin 2 i sin i  sin 2 i  sin i
2 2  2  2
În acelaşi mod obţinem:
3 1 3
H " [xi +1 , xi + 2 ,0]( xi +1 ) = − + ,
2 h 4
sin 2 i +1
2
hi +1
cos
H " [xi +1 , xi + 2 ,1]( xi +1 ) = −2 2 ,
hi +1
sin
2
3 h h
H " [xi + 2 , xi +1 ,0]( xi +1 ) = cos i +1 sin 2 i +1 ,
2 2 2
şi
hi +1
H " [xi + 2 , xi +1 ,1]( xi +1 ) = −1 sin .
2
Prin urmare
hi +1   h
cos   2 cos i +1
3 2 −m 1 3 1 3 2 .
pi"+1 ( xi +1 ) = f i +2 i +2 + f i +1  − +  − mi +1
2 h h  2 2 i +1 4 
h h
sin 2 i +1 sin i +1  sin  sin i +1
2 2  2  2
Funcţia s∆,f va fi o funcţie spline cubică de interpolare dacă şi numai dacă
pj”(xj+1) = pi+1”(xi+1)
pentru i = 0, 1, ..., n-2, relaţie echivalentă cu expresia din enunţ.

Remarcă. Pentru oricare i ∈ {0, 1, ..., n-2}, ρi+1 ≠ 0 şi există o funcţie spline
cubică de tip trigonometric care interpolează datele (fi)i= 0, 1, ..., în nodurile (xi)i=0, 1, ...,
n.
Este clar că matricea sistemului (care apare în prop. 2.4.5) are rangul maxim n-1 şi
va avea o soluţie în sensul celor mai mici pătrate (vezi secţiunea următoare). Dacă
însă, la sistemul iniţial, mai adăugăm condiţiile la frontieră de forma:
2 m0 + λ0 m1 = d0
şi
ρn mn-1 + 2 mn = dn,
sistemul obţinut admite o soluţie unică dacă matricea sa tridiagonală este diagonal
dominantă, adică
2 > |λ0|, 2 > |ρn|
şi
2 > |ρi+1| + |λi+1| pentru i ∈ {0, 1, ..., n-2}.
Deci, în acest caz există o unică funcţie spline cubică de tip trigonometric care
interpolează datele (fi)i = 0, 1, ..., n în nodurile (xi)i = 0, 1, ..., n.
Pentru a obţine o altă construcţie a funcţiilor spline cubice trigonometrice
de interpolare este utilă următorul rezultat.

Propoziţia 1.4.6. Fie α, β două numere reale distincte. În spaţiul vectorial


{u | u ∈ R1[X] şi δu ≤ 3}
există o bază B[α, β, 0], B[α, β, 2], B[β, α, 0], şi B[β, α, 2] cu următoarele
proprietăţi:

DkB[α, β, i](γ)=δαγ δki;

DkB[β, α, i](γ) = δβγ δki, γ∈{α, β}, k, i ∈ {0, 2}.


9 1 3( x − β ) x + 2α − 3β x−β x − 2α + β 
B[α , β ,0]( x ) = sin − sin − sin − sin
3( β − α )  9 2 2 2 2 

8 sin
2
şi
1  3( x − β ) x + 2α − 3 β x−β x − 2α + β  .
B [α , β , 2 ]( x ) = sin − sin − sin − sin 
3( β − α )  2 2 2 2 
2 sin
2
(Permutând pe α şi β se obţin polinoamele B[β, α, 0] şi B[β, α, 2].)

Propoziţia 1.4.7. Fie ∆:= {xi | hi:= xi+1 -xi < 2π/3, i = 0, 1, ..., n-1} o diviziune a
intervalului [a, b] cu b-a < 2π şi f:= (fi)i = 0, 1, ..., n, n+1 valori reale. Dacă o funcţie
spline trigonometrică de gradul 3, notată s∆, f, interpolează datele (fi)i = 0, 1, ..., n în
nodurile (xi)i = 0, 1, ..., atunci Mi := D2 s∆, f(xi), i = 0, 1, ..., n, verifică sistemul liniar:
ξi+1 Mi + ψi+1Mi+1 + ζi+1 Mi+2 = ϕi+1, i = 0, 1, ..., n-2,
unde
hi
sin
ξ i +1 = 2 ,
1 + 2 cos hi
hi + hi +1  h − hi h + hi 
2 sin  cos i +1 + 2 cos i +1
2  2 2 
ψ i +1 = ,
(1 + 2 cos hi )(1 + 2 cos hi +1 )
hi +1
sin
ζ i +1 = 2
1 + 2 cos hi +1

şi
3(1 + 3 cos hi )
ϕ i +1 = fi
h
8 sin i (1 + 2 cos hi )
2
 h h 
 cos 3 i cos 3 i +1 
3 2 2
− f i +1  + +
2 h
 sin (1 + 2 cos hi ) sin h
i i +1
(1 + 2 cos hi +1 ) 
 2 2 
3(1 + 3 cos hi +1 )
+ f i+2
h
8 sin i +1 (1 + 2 cos hi +1 )
2

Demonstraţie. Fie i ∈ {0, 1, ..., n-2}, j ∈ {i, i+1} şi qj polinomul trigonometric de


grad 3:
qj(x) = fjB[xj, xj+1, 0](x) + MjB[xj, xj+1,2](x) +
+ fj+1B[xj+1, xj, 0](x) + Mj+1B[xj+1, xj, 2](x).
Folosind prop. 1.4.6, pentru α := xj, β := xj+1 obţinem:
x + 2 x j − 3x j +1 1 x − 2 x j + x j +1 
[ ]
B ' x j , x j +1 ,0 ( x) =
9 1
− cos
3h j 2 2
− cos
2 2

8 sin 
2
şi
3 3( x − x j +1 ) 1 x + 2 x j − 3 x j +1
[ ]
B ' x j , x j +1 ,2 ( x) =
1

3h j  2
cos
2
− cos
2 2

2 sin
2
1 x − 2 x j + x j +1 1 x − x j +1 
− cos − cos .
2 2 2 2 
Deci
3
B ' [xi , xi +1 ,0]( xi +1 ) = − (1 + 3 cos hi )
3h
8 sin i
2
şi
3hi
B' [xi , xi +1 ,2]( xi +1 ) = (1 − cos hi ) (2 sin ).
2

Interschimbând xj şi xj+1, în relaţiile de mai sus, după efectuarea calculelor, obţinem


3  h 3h 
B ' [xi +1 , xi ,0]( xi +1 ) = 3 cos i + cos i 
3h 2 2 
8 sin i 
2
şi
1 h 3h 
B ' [xi +1 , xi ,2]( xi +1 ) =  cos i − cos i .
3h 2 2 
2 sin i 
2
Rezultă că:
3(1 + 3 cos hi 1 − cos hi
qi' ( xi +1 ) = − f i + Mi +
3h 3h
8 sin i 2 sin i
2 2
 
 
3 h 3h 1 h 3h
+ f i +1  (3 cos i + cos i )  + M i +1 (cos i − cos i ).
 3hi 2 2  3h 2 2
 8 sin  2 sin i
 2  2
În acelaşi mod obţinem:
3 1  3h h 
B ' [xi +1 , xi + 2 ,0]( xi +1 ) = −  cos i +1 + 3 cos i +1 ,
8 sin 3hi +1  2 2 
2
1  3h h 
B' [xi +1 , xi + 2 ,2]( xi +1 ) =  cos i +1 − cos i +1 ,
3h 2 2 
2 sin i +1 
2
3 3h
B ' [xi + 2 , xi +1 ,0]( xi +1 ) = (1 + 3 cos hi +1 ) sin i +1 ,
8 2
şi
3hi +1
B ' [xi + 2 , xi +1 ,2]( xi +1 ) = 0.5(cos hi+1 − 1) sin .
2
Prin urmare
3 1  3h h 
qi' +1 ( xi +1 ) = −
f i +1  cos i +1 + 3 cos i +1  +
8 3h 2 2 
sin i +1 
2
1  3h h 
+ M i +1  cos i +1 − cos i +1  +
3h 2 2 
2 sin i +1 
2
3 (1 + 3 cos hi +1 ) cos hi +1 − 1
+ fi+2 + M i+2 .
8 sin 3hi +1 2 sin
3hi +1
2 2
Funcţia s∆,f va fi o funcţie spline cubică de interpolare dacă şi numai dacă
qi’(xi+1)=qi+1’(xi+1) pentru i = 0, 1, ..., n-2,
relaţie echivalentă, după transformări, cu expresia din enunţul propoziţiei .
Concluzii similare, privind unicitatea funcţiei cubice de tip trigonometric
cu proprietăţi interpolatorii se obţin prin adăugarea de condiţii pe frontieră sau prin
periodicitate (vezi [48]).

1.4.4. Aproximarea în medie pătratică

Procedeele de interpolare, descrise anterior şi generalizările acestora, permit


determinarea unei aproximaţii g (polinom clasic sau trigonometric, funcţie
raţională, funcţie spline clasică sau de tip trigonometric etc.) a unui set de date f(xi)
pentru nodurile xi, în condiţiile g(xi) = f(xi), i= 0, 1, …, n. Dacă valorile nu sunt
exacte, ele obţinându-se prin diverse procedee de aproximare, problema interpolării
pierde din putere. De asemenea, interpolarea polinomoială sau prin funcţii raţionale
devine impracticabilă atunci când numărul condiţiilor de interpolare (gradul sau
ordinul modelului de interpolare) este ridicat, datorită volumului mare de calcul
necesar evaluării aproximaţiei pentru un punct.
Deşi există multe metode de aproximare utile în prelucrarea datelor
experimentale, vom considera doar un singur tip: metoda celor mai mici pătrate.
Această metodă determină g în condiţiile:
n

∑ Λ( x )( f ( x ) − g ( x ))
i =0
i i i
2
→ minim

în cazul discret, sau


b

∫ Λ( x)( f ( x) − g ( x)) dx → minim,


2

a
în cazul continuu, unde Λ ≥ 0 este o funcţie pondere pe intervalul [a, b].
Dacă g(xi) = f(xi) pentru i = 0, 1, …, n, aproximaţia în medie pătratică se
reduce la o problemă de interpolare. Altfel, modelul g nu va trece (obligatoriu) prin
punctele (xi, f(xi)).
În continuare, considerăm cazul discret, cu ponderile egale cu unitatea şi
modelul g de tip polinomial: g = a0 + a1X + … = apXp, ai numere reale, p>0.
Metoda celor mai mici pătrate constă în determinarea coeficienţilor ai astfel încât
funcţia
2
 n p

h(a0, a1, ….,ap) = ∑  f ( xi ) − g ∑ a j xij 
i =0  j =0 
să aibă valoarea minimă. Deci, această problemă s-a redus la calculul punctului de
minim al unei funcţii de mai multe variabile. Deoarece
∂h n
 p

= −2∑  f ( xi ) − ∑ a k xik xij ,
∂a j i =0  k =0 
componentele punctului de minim sunt soluţiile sistemului:
p n n

∑a ∑ x
k =0
k
i =0
k+ j
i = ∑ xij f ( xi ), j = 0, 1, …, p
i =0
Folosind notaţiile:
n
w j ,k = ∑ xik + j , j = 0, 1, …, p; k = 0, 1, …, p
i =0
şi
n
y j = ∑ xij f ( xi ) ; j = 0, 1, …, p,
i =0
se obţine forma normală W a = y, un sistem liniar, cu p+1 ecuaţii şi p+1 necu-
noscute.
În general, această metodă se aplică pentru "netezirea datelor" (eng.:
smoothing): modelarea unei mulţimi de puncte cu ajutorul unei expresii polino-
miale, raţionale, trigonometrice, exponentiale etc.
1.5. Poiecţii şi transformări de vizualizare

1.5.1. Vizualizarea scenelor plane

Scenele 2D (colecţii de figuri plane) produse cu ajutorul calculatorului sunt


descrise într-un sistem de coordonate diferit de acela la care sunt raportate pe
suprafaţa de afişare. De exemplu, metafişierele grafice stochează desenele într-un
sistem de coordonate normalizat ([0,1]x[0,1]). Alte aplicaţii (grafice de funcţii,
desene tehnice etc.) descriu obiectele grafice într-un sistem de coordonate utilizator
(coordonate carteziene - numere reale), coordonate polare etc.) numit şi sistem de
coordonate logice sau sistem de coordonate universale. Prin aceste denumiri se face
distincţie faţă de sistemul de coordonate fizice ale dispozitivului de afişare.
Evident, unităţile de măsură ale celor două sisteme de coordonate diferă (în
general) [3, 39].
Transformarea de vizualizare 2D este o aplicaţie de la un sistem de
coordonate la altul, unui punct al desenului (specificat în coordonate universale) i
se asociază un punct pe suprafaţa de afişare (în coordonate fizice).
O suprafaţă dreptunghiulară, specificată în coordonate logice (în general
numere reale) este numită fereastră (eng.: window). Suprafaţa dreptunghiulară care
va include zona de desen definită de fereastră, dar specificată în coordonate fizice,
se numeşte vizor (viewport). Transformarea de vizualizare se mai numeşte şi
transformare fereastră-vizor [3, 39]
Fie (xwmin, ywmin) şi (xwmax, ywmax) vârfurile opuse ale dreptunghiului
fereastră, iar (xvmin, yvmin) şi (xvmax, yvmax) vârfurile opuse ale vizorului. Fie A(xw,
yw) un punct din interiorul ferestrei. Transformarea de vizualizare asociază
punctului A un punct A’(xv, yv), aflat în vizor, astfel încât poziţia relativă a
punctului A’ în vizor să fie aceeaşi cu poziţia relativă a punctului A în fereastră.
Matematic, această condiţie se descrie prin relaţiile:
x v − xv min x − x w min
= w ,
x v max − xv min x w max − x w min
y v − y vmin y − y wmin
= w .
y vmax − y vmin y wmax − y wmin
Prin urmare, matricea transformării de vizualizare este :
x − x v min y v max − y v min 
Twv = Tr (− x w min ,− y w min ) S  v max , Tr ( x v min , y v min ),
 x w max − x w min y w max − y w min 
unde Tr şi S reprezintă transformările ce realizează translatarea, respectiv scalarea.
Obţinem (folosind coordonatele omogene):
[xv, yv, 1] = [xw, yw, 1]Twv = [
xvmin+(xw-xwmin)(xvmax-xvmin)/(xwmax-xwmin),
yvmin+(yw-ywmin)(yvmax-yvmin)/(ywmax-ywmin),
1
].
Din punct de vedere practic, mai ales în cadrul display-urilor raster, mulţimea
punctelor adresabile ale suprafeţei de afişare este finită, în timp ce mulţimea
punctelor ferestrei 2D în care este definit desenul este infinită (se lucrează cu
numere reale). Dacă fereastra cuprinde numai o parte a desenului, atunci înainte de
aplicarea transformării de vizualizare se realizează decuparea desenului (eng.:
clipping) la nivelul ferestrei. Algoritmii de decupare sunt algoritmi care rezolvă
problema intersecţiei obiectelor geometrice.

1.5.2. Modelarea procesului de vizualizare spaţială

Procesul de vizualizare a scenelor spaţiale este foarte complex. Este necesară o


transformare care să proiecteze obiectele din spaţiu în plan pentru a obţine imagini
plane. Transformarea de vizualizare spaţială utilizează un volum de vizualizare
definit în sistemul de coordonate universale, o proiecţie pe un plan de proiecţie şi
un vizor pe o suprafaţă de vizualizare. În fereastră se va obţine rezultatul
transformării de proiecţie, iar apoi imaginea finală se va genera prin intermediul
transformării fereastră-vizor şi folosind algoritmi specifici graficii pe calculator).
Deoarece obiectele scenei 3D pot depăşi limitele volumului de vizualizare
selectat, mai întâi, se va aplica un algoritm de decupare la nivelul volumului de
vizualizare (o problemă de intersecţie a obiectelor spaţiale). Rezultă că modelul
conceptual al procesului de vizualizare 3D este constituit din următoarele
componente [3, 39]: model pentru stabilirea volumului de vizualizare, decupator la
limitele volumului de vizualizare, modelul proiecţiei în plan, transformarea de
vizualizare 2D (fereastră => vizor).
Acest model conceptual nu ia în considerare şi posibilitatea eliminării
părţilor invizibile ale obiectelor şi nici posibilitatea utilizării unui model de
iluminare a scenelor 3D. Eliminarea părţilor obturate se realizează folosind
algoritmi specifici [39].

1.5.3. Proiecţii

În general proiecţiile transformă puncte dintr-un spaţiu n - dimensional într-un


spaţiu m -dimensional, cu m ≤ n. Deşi în grafică şi proiectare asistată de calculator
se pot utiliza proiecţii şi pentru n>3, în această lucrare vom considera numai
proiecţii geometrice plane pentru n=3 şi m=2. În practică sunt definite şi proiecţii
neplanare (de exemplu în cartografie).
Pentru a defini o proiecţie este necesar a specifica proiectori (direcţii), care pornesc
dintr-un punct numit centru de proiecţie, trec prin fiecare punct al scenei spaţiale şi
intersectează planul de proiecţie pentru a forma proiecţia.
Există două metode de bază pentru proiectarea obiectelor tridimensionale
pe o suprafaţă de vizualizare plană: proiecţia paralelă şi proiecţia perspectivă. Dacă
distanţa dintre centrul de proiecţie şi planul de proiecţie este finită atunci proiecţia
se numeşte perspectivă, în caz contrar proiecţia se numeşte paralelă. Proiecţia
paralelă păstrează dimensiunile relative ale obiectului şi este utilizată în desenul
tehnic pentru reprezentarea la scară a obiectelor spaţiale. Deşi reprezentarea unui
obiect spaţial supus proiecţiei paralele nu este completă (pentru a vedea ca în
realitate), ea redă precis anumite părţi ale obiectului. Proiecţia perspectivă conduce
la reprezentări cu caracter ridicat de realism, dar nu păstrează raportul
dimensiunilor diverselor părţi ale obiectului, iar de cele mai multe ori nici mărimea
unghiurilor.

„ Proiecţii paralele

Considerând unghiul dintre direcţia de proiecţie şi planul de proiecţie, se disting


două clase de proiecţii paralele:
• proiecţiile ortografice şi
• proiecţiile oblice.
Proiecţia ortografică este acea proiecţie geometrică planară, paralelă, pentru care
liniile de proiecţie (proiectorii) sunt perpendiculare pe planul de proiecţie. Acea
proiecţie paralelă pentru care liniile de proiecţie nu sunt perpendiculare pe planul
de proiecţie se numeşte proiecţie oblică.
Proiecţia ortografică este folosită mai ales în desenul tehnic. Ea descrie
corect forma şi dimensiunile feţelor plane ale obiectului paralele cu unul din
planele sistemului de coordonate.
Proiecţiile ortografice vederi sunt de următoarele tipuri:
• proiecţii în planele de coordonate x = 0 (matricea Tx), y = 0 (matricea
Ty), z = 0 (matricea Tz): Tx = diag(0, 1, 1, 1), Ty = diag(1, 0, 1, 1) şi Tz
= diag(1, 1, 0, 1), unde diag(.,., …, .) reprezintă o matrice ale cărei
elemente de pe diagonală sunt cele specificate, în rest elementele sunt
nule
• proiecţii pe un plan de proiecţie paralel cu unul din planele sistemului
de coordonate.
Deoarece o singură proiecţie ortografică nu permite reproducerea formei
obiectului, sunt necesare mai multe vederi precum:

Vedere faţă - în planul z = 0, cu centrul de proiecţie la infinit pe


semiaxa pozitivă Oz.
Vedere spate - în planul z = 0, cu centrul de proiecţie la infinit pe
semiaxa negativă Oz.
Vedere dreapta - în planul x = 0, cu centrul de proiecţie la infinit pe
semiaxa pozitivă Ox.
Vedere stânga - în planul x = 0, cu centrul de proiecţie la infinit pe
semiaxa negativă Ox.
Vedere sus - în planul y = 0, cu centrul de proiecţie la infinit pe
semiaxa pozitivă Oy.
Vedere jos - în planul y = 0, cu centrul de proiecţie la infinit pe
semiaxa negativă Oy.
Feţele obiectelelor, care nu sunt paralele cu unul din planele sistemului de
coordonate nu sunt reprezentate în forma şi la dimensiunea corectă în nici una din
cele şase vederi. Pentru a avea o imagine realistă a obiectului sunt necesare vederi
auxiliare sau/şi vederi în secţiune, obţinute în urma unor rotaţii şi translaţii asupra
obiectului.
Dacă planul de proiecţie nu este perpendicular pe nici una din axele
sistemului de coordonate atunci proiecţia ortografică se numeşte proiecţie
axonometrică. Ca întemeietor al reprezentării axonometrice este considerat
William Farish (1759-1837), profesor la Universitatea din Cambrige, dar cel care a
fundamentat ştiinţific reprezentarea axonometrică este italianul Giovani Codazza
(1816-1873). Planul de proiecţie se numeşte plan axonometric.
Luând în considerare poziţia normalei la planul de proiecţie se disting trei
tipuri de proiecţii axonometrice: proiecţia izometrică, proiecţia dimetrică şi
proiecţia trimetrică. Dacă n este vectorul normală la planul de proiecţie atunci
când vectorul n face unghiuri congruente cu cele trei axe ale sistemului de
coordonate proiecţia se numeşte izometrică, când vectorul n face unghiuri
congruente cu două din axele sistemului de coordonate proiecţia se numeşte
dimetrică, iar când unghiurile dintre vectorul n şi axele sistemului de coordonate
sunt diferite, proiecţia se numeşte trimetrică.
Proiecţia axonometrică nu păstrează forma feţelor obiectului, cu excepţia
acelor feţe paralele cu planul de proiecţie. Lungimile relative ale liniilor paralele
sunt păstrate (fiind egal micşorate) precum şi paralelismul lor. De asemenea,
unghiurile nu se conservă.
Proiecţia axonometrică se poate obţine prin aplicarea de transformări
geometrice (rotaţii şi translaţii) asupra obiectului astfel încât cel puţin trei feţe
adiacente ale acestuia să fie vizibile. Apoi se utilizează o vedere faţă.
Dreptele de intersecţie dintre planul axonometric şi feţele triedrului tri-
dreptunghic de referinţă (urmele planului axonometric) formează un triunghi
PxPyPz, numit triunghi axonometric.
Fie O* proiecţia ortogonală a punctului O pe planul axonometric. Proiec-
ţiile ortogonale ale axelor Ox, Oy, Oz ale triedrului tridreptunghic de referinţă, pe
planul axonometric se numesc axe axonometrice: O*Px, O*Py, O*Pz.
Fie α = ∠(O*Px, Ox), β = ∠(O*Py, Oy) şi γ = ∠(O*Pz, Oz). Atunci
cos2α + cos2β + cos2γ = 2,
egalitate cunoscută sub numele de relaţia fundamentală a proiecţiei axonometrice
ortogonale tridimensionale.
Într-adevăr, fie planul axonometric dat prin tăieturi:
bcx + acy + abz = abc
cu a>0, b>0 şi c>0 (adică: Px(a, 0, 0), Py(0, b, 0) şi Pz(0, 0, c)). Normala la planul
axonometric, prin O, are ecuaţiile: ax - by = 0, ax - cz = 0. Intersecţia normalei cu
planul conduce la
O*(ab2c2/E, a2bc2/E, a2b2c/E),
2 2 2 2 2 2
unde E:= b c +a c +a b .
Considerăm vectorii liberi: PxO = (-a, 0, 0), PyO = (0, -b, 0) şi PzO = (0, 0, -c). Cu
ajutorul calculului vectorial obţinem:
PxO* = [a2/E](-a(b2+c2), bc2, b2c),
PyO* = [b2/E](ac2, -b(a2+c2), a2c) şi
PzO* = [c2/E](ab2, a2b, -c(a2+b2)).
Prin urmare: |PxO|=a, |PyO|=b, |PzO| = c şi
a 2 b2 + c2
|PxO*| = ,
E
b2 a 2 + c2
|PyO*| = ,
E
c2 a 2 + b2
|PzO*| = .
E
Folosind formula cosinusului (pentru a determina unghiul a doi vectori) rezultă:
b2 + c2 a 2 + c2 a 2 + b2
cos α = a , cos β = b şi cos γ = c .
E E E
După un calcul elementar se obţine relaţia fundamentală enunţătă.

Se numeşte factor de micşorare (scalare) sau coeficient de reducere,


raportul dintre lungimea proiecţiei unui segment şi lungimea reală a segmentului.
Factorii de micşorare sunt utili pentru obţinerea matricelor transformărilor
axonometrice. În cazul transformării izometrice factorii de micşorare corespunzător
celor trei axe sunt egali. Dacă numai doi factori de micşorare sunt egali, proiecţia
este dimetrică. În cazul proiecţiei trimetrice, factorii de micşorare pe fiecare axă
principală sunt diferiţi.
Prezentăm, în continuare, o modalitate de obţinere a matricelor proiecţiei
axonometrice. Considerând versorii axelor, lungimea proiecţiei acestora este chiar
cosinusul unghiului alăturat. Fie fx = cos α, fy = cos β şi fz = cos γ factorii de
micşorare.
Dacă alegem rotaţiile în jurul axelor Oy şi apoi Oz, matricea proiecţiei
trimetrice este de forma Ptrimetrică = Ry(β)Rx(α)Pz, adică:

cos β sin β sin α 0 0


 0 cos α 0 0
Ptrimetrică = 
 sin β − cos β sin α 0 0
 
 0 0 0 1
Pentru a determina factorii de micşorare aplicăm transformarea Ptrimetrică, vectorilor
unitari:
1 0 0 1  x1 y1 0 1
0 1 0 1 P  0 1 .
  trimetrica =  x 2 y2
0 0 1 1  x3 y3 0 1
Rezultă:
f x = x12 + y12 , f y = x 22 + y 22 şi f z = x32 + y 32 .

Pentru a obţine matricea proiecţiei dimetrice, presupunem cunoscut factorul de


micşorare pe axa Oz şi determinăm unghiurile α şi β în funcţie de fz. Efectuând
calculele, obţinem:
f x2 = cos2 β + sin2 β sin2 α , f y2 = cos 2 α şi f z2 = sin2 β + cos2 β sin2 α .
Condiţia de egalitate asupra a doi factori de micşorare conduce la:
fx = fy ⇔ cos2β+sin2βsin2α=cos2α,
de unde înlocuind în expresia lui fz obţinem ecuaţia:
2 sin 2 α − 2 sin 4 α − (1 − sin 2 α ) f z2 = 0
echivalentă cu
2 sin 4 α − (2 + f z2 ) sin 2 α + f z2 = 0 .
Rezolvarea ecuaţiei furnizează următoarele soluţii posibile (pentru determinarea
proiecţiei dimetrice):
α = arcsin(±fz/2)
şi
β = arcsin(± f z / 2 − f z2 ) .
Proiecţia izometrică se deduce din egalitatea celor trei factori de micşoare: egalita-
tea fx = fy conduce la ecuaţia
sin2β = sin2α/(1-sin2α),
iar din egalitatea fy = fz rezultă ecuaţia
sin2 β = (1-2sin2α)/(1-sin2α).
Prin urmare sin2α = 1/3 şi sin2β = 1/2, adică α = ±35.26438968° şi β = ±45°.
Se observă că proiecţia izometrică este un caz particular al proiecţiei
dimetrice obţinută pentru fz = 0.81649658.
Pentru a înţelege şi mai bine proiecţia de tip axonometric, vom evidenţia
câteva proprietăţi importante ale triunghiului axonometric.
1). Triunghiul axonometric este întotdeauna ascuţitunghic.
2). Axele axonometrice sunt înălţimile triunghiului axonometric, iar O*
este ortocentrul său.
3). Axele axonometrice formează între ele unghiuri obtuze.
Demonstraţie:
1) Fie α* = ∠(PxPy, PxPz), β* = ∠(PyPx, PyPz) şi γ* = ∠(PzPx, PzPy). Deoarece PxPy
= (-1, b, 0), PxPz = (-a, 0, c), iar PyPz = (0, -b, c) obţinem, succesiv, normele |PxPy|,
|PxPz| şi PyPz, precum şi expresiile pentru cos α*, cos β* şi cos γ* care sunt valori
din intervalul (0,1). Aceasta înseamnă că unghiurile sunt ascuţite.

2) Cu notaţiile şi evaluările de mai sus, rezultă imediat că: <O*Px, PyPz> = 0;


<O*Py, PxPz> = 0 şi <O*Pz, PxPy> = 0, adică ortogonalitatea vectorilor.

3) Deoarece
cos ∠(O*Px, O*Py) = -c2/ E + c 4 ,
cos ∠(O*Px, O*Pz)= -b2/ E + b 4
şi
cos ∠(O*Py, O*Pz) = -a2/ E + a 4
sunt valori din intervalul (-1, 0) rezultă că unghiurile dintre axele axonometrice
sunt obtuze.

Utilizând aceste proprietăţi obţinem:


a) triunghiul axonometric corespunzător proiectţiei axonometrice izome-
trice este echilateral, iar axele axonometrice formează între ele unghiuri
de câte 120°.
b) triunghiul axonometric corespunzător proiecţiei axonometrice dimetrice
este isoscel, iar în cazul proiecţiei axonometrice trimetrice este un triunghi
oarecare.

Dacă direcţia de proiecţie nu este perpendiculară pe planul de proiecţie, dar centrul


proiecţiei este situat la infinit, atunci proiecţia se numeşte oblică. Vom considera
că planul de proiecţie este perpendicuar pe una din axele sistemului de coordonate,
iar pentru simplificare presupunem că este vorba de planul z = 0. Prin aplicarea
proiecţiei oblice feţele paralele cu planul de proiecţie sunt redate la forma şi
dimensiunile lor reale, celelalte feţe sunt distorsionate.
În practică se utilizează două proiecţii oblice importante: proiecţia
Cavalieri - după numele matematicianului italian Bonaventura Cavalieri (unghiul
dintre direcţia de proiecţie şi planul de proiecţie este de 45°) şi proiecţia cabinet
(obţinută pentru un unghi al direcţiei de proiecţie cu planul de proiecţie de 63.43°).
Pentru proieţia Cavalieri, factorul de micşorare pentru liniile perpendiculare pe
planul de proiecţie este 1, iar în cazul proiecţiei cabinet acelaşi factor este 0.5.
Matricea proiecţiei oblice în planul z = 0 după direcţia de proiecţie
v=ai+bj+ck este
 1 0 0 0
 0 1 0 0
Po =  .
− a / c − b / c 0 0
 
 0 0 0 1
Dacă P(x,y,z) se proiectează după direcţia v în punctul P'(x', y',0), atunci PP' || v,
deci: x'=x-a/c*z şi y'=y-b/c*z.

„ Proiecţia perspectivă

O transformare perspectivă este determinată de un centru de proiecţie şi un plan de


proiecţie, fiind o aplicaţie dintr-un spaţiu 3D într-un alt spaţiu 3D. Proiecţia
perspectivă într-un plan de vizualizare 2D se obţine prin aplicarea unei proiecţii
ortografice imediat după aplicarea transformării perspective.
Proiecţia perspectivă nu conservă dimensiunile relative, iar un segment mai
departe de observator va fi afişat mai mic decât un alt segment cu aceeaşi lungime,
dar situat mai aproape de observator. Liniile paralele care nu sunt paralele cu
planul de proiecţie converg într-un punct de convergenţă (eng.: vanishing point).
Fiecare set de astfel de linii paralele are un punct de convergenţă separat. Liniile
paralele care sunt paralele cu planul de proiecţie rămân paralele şi în proiecţia
perspectivă.
Proiecţia perspectivă standard: Fie centrul de proiecţie C(0,0,d), planul de
proiecţie z=0 şi P(x, y, z) un punct care se proiectează în P'(x', y', z'). Din
asemănarea triunghiurilor dreptunghice care se formează rezultă: x'/d=x/(d-z) şi
y'/d=y/(d-z). Rezultă (notând -1/d prin r) că: x'=x/(1+z*r), y'=y/(1+z*r) şi z'=0.
Deci, matricea transformării proiecţiei perspective standard este:
1 0 0 0
0 1 0 0
Tpz =  .
0 0 0 r
 
0 0 0 1
Dreptele paralele cu axa Oz converg în punctul VZ(0, 0, -d). Dacă centrul de
proiecţie este situat pe axa Ox, C(d, 0, 0), iar planul de proiecţie este x = 0, urmând
etapele de mai sunt, se obţine matricea de proiecţie:
1 0 0 p
0 1 0 0 
Tpx =  ,
0 0 0 0
 
0 0 0 1
unde p = -1/d, iar dacă centrul de proiecţie este pe axa Oy, C(0, d, 0) şi planul de
proiecţie este y=0, atunci matricea proiecţiei perspectivă este:
1 0 0 0
0 1 0 q 
Tpy=  ,
0 0 0 0
 
0 0 0 1
cu q = -1/d.
Presupunem că centrul de proiecţie este C(xc, yc, zc), iar planul de proiecţie este z =
0. Dacă P(x, y, z) este punctul supus transformării, atunci P'(x', y', z'), proiecţia
punctului P, este obţinută din condiţiile CP||CP' şi z'=0. Rezultă coordonatele
punctului proiectat:
x'=(x*zc-z*xc)/(zc-z)
şi
y'=(y*zc-z*yc)/(zc-z).
Proiecţia perspectivă generală: Fie centrul de proiecţie C(xc, yc, zc) şi
planul de proiecţie general specificat prin punctul F(xf, yf, zf) şi normala la plan
N=n1i+n2j+n3k. Transformarea perspectivă se obţine parcurgând următoarele etape:

Etapa 1: Se efectuează o translaţie, astfel încât centrul de proiecţie


să ajungă în originea sistemului de coordonate 3D. Fie Tr(-xc, -yc, -zc)
matricea de translaţie. Planul de proiecţie se translatează, iar punctul F va
avea coordonatele: x1 = xf - xc, y1 = yf - yc, z1 = zf - zc. Vectorul normală N
nu se modifică în urma translatării.

Etapa 2: Se aplică transformarea de proiecţie din originea


sistemului de coordonate. Din CP || CP’ rezultă x’/x = y’/y = z’/z. Cum P’
aparţine planului translatat, rezultă
n1*x’+n2*y’+n3*z’=n1*x1+n2*x2+n3*x3=D. Din aceste relaţii, prin
exprimarea necunoscutelor x’ şi y’ în funcţie de z’, folosind a doua relaţie,
deducem z’=D*z/(n1*x+n2*y+n3*z). Prin substituţie rezultă
x’=D*x/(n1*x+n2*y+n3*z), y’=D*y/(n1*x+n2*y+n3*z).
Această transformare se exprimă matriceal prin:
 D 0 0 n1 
0 D 0 n 
Tp = 
2
.
 0 0 D n3 
 
0 0 0 0 
Etapa 3: Transformarea inversă translatării de la pasul 1.

În final, produsul celor trei transformări conduce la matricea transformării


perspective:
Tpersp = Tr(-xc, -yc, -zc) Tp Tr(xc, yc, zc) =

 D + xc * n1 yc * n1 z c * n1 n1 
 x *n D + y c * n2 z c * n2 n 2 
= 
c 2
,
 x c * n3 y c * n3 D + z c * n3 n3 
 
 − x c * D0 − y c * D0 − z c * D0 D1 
unde
D0=n1*xf+n2*yf+n3*zf; D1=n1*xc+n2*yc+n3*zc şi D = D1D0.
1.5.4. Sisteme de vizualizare 3D

Orice sistem de vizualizare 3D specifică volumul de vizualizare care încadrează


zona de interes din spaţiul logic ce se va proiecta în planul de vizualizare,
elementele definitorii şi ansamblul transformărilor geometrice necesare pentru a
duce un punct din spaţiul de coordonate 3D într-un plan de vizualizare.

Sistemul de vizualizare simplificat: este definit de patru parametrii (numere reale)


care reprezintă: poziţia observatorului (eng.: viewer) Obs(x0, y0, z0) şi distanţa la un
plan de vizualizare d. Se acceptă ideea ca planul de vizualizare să fie perpendicular
pe dreapta care uneşte punctul Obs cu originea sistemului de coordonate real.
Sistemul este simplificat deoarece este util scenelor formate dintr-un singur obiect
poziţionat în jurul originii sistemului de coordonate real.
Determinarea transformării generale de vizualizare 3D se realizează prin
efectuarera următorilor paşi:
• definirea unui sistem (tip stânga) de coordonate de vizualizare (xv, yv,
zv) cu originea în punctul de observaţie Obs(x0, y0, z0), cu axa zv
orientată spre originea sistemului de coordonate universale (de tip
dreapta);
• definirea unui sistem 2D, în planul de vizualizare (plan normal la axa
zv), cu axele notate prin xs, ys astfel încât axa ys este paralelă cu axa yv;
• stabilirea matricei proiecţiei perspective din originea sistemului de
coordonate în planul perpendicular pe axa zv, la o distanţă d faţă de
origine.
Fie ρ distanţa de la punctul Obs la originea sistemului de coordonate
universale, iar a şi b cele două unghiuri (a∈[-π/2, π/2], b∈[0, 2π]) care împreună
cu ρ definesc coordonatele sferice ale punctului Obs:
x0 = ρ sin(a) cos(b),
y0 = ρ sin(a) sin(b),
z0 = ρ cos(b).
Transformările geometrice elementare care compun transformarea de vizualizare
3D sunt:
• Translaţia sistemului de coordonate universale în poziţia punctului de
vizualizare: Tr(-x0, -y0, -z0). Fie x', y', z' axele noului sistem de
coordonate.
• Rotaţia sistemului de coordonate x'y'z', cu 90°-b în sensul acelor de
ceasornic, în jurul axei z': matricea de rotaţie Rz(90°-b), astfel încât
noul sistem x''y''z'' rezultat are următoarele caracteristici: axa x'' este
perpendiculară pe planul ce conţine dreapta z' şi raza vectoare cu
punctul de aplicaţie în O şi extremitatea în punctul Obs; z'' = z' şi y''
este la 90° în sens trigonometric de x''.
• Rotaţia sistemului de coordonate x''y''z'' în jurul axei x'' cu unghiul
180°-a, în sens trigonometric, astfel încât x'''=x'', z'''=ObsO (trece prin
originea sistemului de coordonate universale) şi y''' este situată la 90°
de z''': Rx(a-180°).
• Transformarea sistemului de coordonate “dreapta” într-un sistem de
coordonate “stânga”: Oyz.

Rezultă că obţinerea sistemului de vizualizare este posibilă prin aplicarea transfor-


mării compuse:
− sinb − cosa cosb − sina cosb 0
 cosb − cosa sinb − sina sinb 0
Tsv=Tr(-x0, -y0, -z0)Rz(90°-b)Rx(a-180°)Oyz =  ,
 0 sina − cosa 0
 
 0 0 ρ 1
iar transformarea perspectivă din originea sistemului de coordonate x'''y'''z''' în
planul perpendicular pe axa z’’’ situat la distanţă d faţă de origine este Pz, definită
mai sus. Prin urmare transformarea de vizualizare 3D este Tv = TsvPz.
Sistemul de vizualizare general presupune stabilirea volumului de
vizualizat din spaţiul real şi a proiecţiei într-un plan de vizualizare. Poziţia şi
orientarea planului de vizualizare (cu axele notate u şi v) sunt definite prin
(elemente specificate în coordonate universale):
• normala la planul de vizualizare - va determina axa n, VPN (eng.: View
Plane Normal);
• punctul de referinţă din plan, VRP (eng.: View Reference Point);
• vectorul a cărei proiecţie determină direcţia axei v în planul de
vizualizare, VUP (eng.: View Up vector).
Direcţia axei u este definită astfel încât u, v şi n să formeze un sistem de
coordonate “dreapta”. Sistemul determinat de u,v şi n se numeşte sistemul de
coordonate de vizualizare.
În planul de vizualizare determinat de axele u şi v se defineşte o zonă
dreptunghiulară numită fereastră de vizualizare. Practic, imaginea proiectată în
această fereastră va fi supusă transformării fereastră-vizor pentru a fi afişată
(generată pe suprafaţa de afişare a dispozitivului grafic).
Volumul de vizualizare delimitează acea zonă din spaţiul de coordonate
real, care va fi decupată şi proiectată în fereastra de vizualizare. Forma volumului
de vizualizare depinde de tipul proiecţiei utilizate.
Specificarea proiecţiei necesită definirea unui punct de referinţă al
proiecţiei, PRP (eng.: Projection Reference Point) - specificat în coordonatele
sistemului de vizualizare şi un indicator al tipului proiecţiei. Dacă proiecţia este cea
paralelă atunci direcţia de proiecţie (DP) este dată de centrul ferestrei de
vizualizare CW (eng.: Center of the Window) şi PRP. Pentru proiecţia perspectivă,
PRP este chiar centrul de proiecţie.
Pentru proiecţia paralelă, volumul de vizualizare este un paralelipiped
infinit cu laturile paralele cu direcţia de proiecţie. În cazul proiecţiei perspective,
volumul de vizualizare este o piramidă semiinfinită cu vârful în centrul de
proiecţie. În ambele cazuri, laturile volumului de vizualizare sunt proiectorii care
trec prin cele patru vârfuri ale ferestrei de vizualizare.
Limitarea volumului de vizualizare (la o regiune mărginită) se realizează
prin intersecţia volumului de vizualizare infinit cu două plane paralele cu planul de
vizualizare, de o parte şi de alta a acestuia. În cazul proiecţiei paralele, cele două
plane se descriu prin indicarea distanţelor (relative la VRP) acestora faţă de planul
de vizualizare:
F (eng.: front) - distanţa până la planul din faţă,
B (eng.: back) - distanţa până la planul din spate.
Decuparea imaginii la nivelul unui volum de vizualizare (precum cele de
mai sus) necesită efectuarea de intersecţii între planele volumului de vizualizare şi
obiectele scenei 3D (în general cu un efort de calcul mare). De aceea, se recomandă
transformarea volumului de vizualizare într-un volum canonic. Transformarea
geometrică a unui volum de vizualizare în volumul de vizualizare canonic
corespunzător tipului de proiecţie ales se numeşte transformare de normalizare.
Dacă această transformare se aplică obiectelor interioare volumului de vizualizare
atunci rezultatul transformării este constituit din descrierea scenei în aşa numitele
coordonate normalizate (un mod simplu de a obţine portabilitatea fişierelor
grafice).
Volumul de vizualizare canonic este definit în mod diferit de la un tip de
proiecţie la altul. Pentru proiecţia paralelă volumul canonic este paralelipipedul
delimitat de planele: x = -1, x = 1, y = -1, y = 1, z = 0 şi z = -1. În cazul proiecţiei
perspective este considerat volum canonic trunchiul de piramidă delimitat de
planele: x = z, x = -z, y = z, y = -z, z = -zmin, z = -1. Standardele grafice utilizează
diverse volume canonice. De exemplu, standardul PHIGS foloseşte cubul unitate În
cazul proiecţiei paralele şi, piramida cu baza pătratul [0,1] din planul z=0 şi vârful
(0.5, 0.5, 1) pentru volumul canonic al proiecţiei perspective.
Fie Npar, respectiv Nper, transformarea de normalizare pentru proiecţia
paralelă (respectiv perspectivă).
Obţinerea matricei Npar: Considerăm cazul general al proiecţiei oblice.
Transformarea Npar se compune din următoarele transformări elementare:
1. Translatarea punctului VRP în originea sistemului de coordonate
universale: Tr(-VRP).
2. Rotaţia sistemului de coordonate de vizualizare astfel încât axa n
(vectorul VPN) să devină axa z, iar axele u şi v să se alinieze cu axele
x respectiv y.
3. Întinderea (forfecarea) astfel ca direcţia de proiecţie să devină paralelă
cu axa z.
4. Translatare şi scalare în volumul de vizualizare canonic ales.
Fie R matricea rotaţiei care intervine în pasul al doilea. Vectorii coloană ai matricei
R sunt vectorii unitate ai sistemului de coordonate de vizualizare, rotiţi de matricea
R, astfel încât să aibă loc alinierea acestora cu axele x, y şi z. Deci:
Rz = VPN/|VPN|, Rx = (VUP x Rz)/|VUP x Rz| şi Ry = Rz x Rx.
Prin urmare, matricea R este:
 r1x r1 y r1z 0
r r2 y r2 z 0
R =  2x ,
 r3 x r3 y r3 z 0
 
0 0 0 1
cu r1x primul element al coloanei Rx ş.a.m.d.
Pentru obţinerea transformării de forfecare trebuie să facem ca planele
volumului de vizualizare să devină perpendiculare pe axele sistemului de
coordonate. Se ştie că direcţia de proiecţie (DP) este dată de PRP şi centrul
ferestrei (CW), iar transformările anterioare au facut ca ambele puncte să se afle
acum în sistemul de coordonate universale:
DP = CW-PRP = [dpx, dpy, dpz, 0] =
= [(umax+umin)/2, (vmax+vmin)/2, 0, 1]-[prpu, prpv, prpn, 1].
Fie Fxy matricea de forfecare având liniile
[1, 0, 0, 0], [fx, 1, 0, 0], [0, fy, 1, 0] şi [0, 0, 0, 1].
Din condiţia DP' (aliniată cu axa z) = [0, 0, dpz, 0] = DP * Fxy rezultă că factorii de
întindere sunt:
fx = -dpx/dpz şi fy = -dpy/dpz..
Pentru proiecţia ortografică: dpx = dpy = 0, deci Fxy = I (matricea unitate).
După aplicarea transformării de întindere, volumul de vizualizare a fost
transformat în volumul descris prin ecuaţiile:
umin ≤ x ≤ umax, vmin ≤ y ≤ vmax, B ≤ z ≤ F,
unde F şi B sunt distanţele de la VRP (de-a lungul direcţiei VPN) la planele de
decupare faţă, respectiv spate.
Transformarea acestui volum în volumul canonic se realizează prin
aplicarea unei translaţii şi a unei scalări (în mod succesiv) cu următorii parametri:
Tpar = Tr(-(umin+umax)/2, -(vmin+vmax)/2, -F),
Spar = S(2/(umax-umin), 2/(vmax-vmin), 1/(F-B)).
Deci
Npar = Tr(-VRP)RFxyTparSpar..
Obţinerea matricei Nper: Etapele obţinerii transformării de normalizare Nper
sunt similarea procesului de obţinere a transformării Npar (primele două matrice
elementare fiind aceleaşi cu cele deduse în cazul proiecţiei paralele):
1. Translatarea punctului VRP în originea sistemului de coordonate
universale.
2. Rotirea sistemului de coordonate de vizualizare astfel ca axa n (VPN)
să devină axa z, iar u şi v să se alinieze cu axele x, respectiv y.
3. Translatarea punctului PRP în originea sistemului de coordonate: Tr(-
PRP).
4. Aplicarea unei transformări de forfecare astfel incât axa de simetrie a
volumului să devină axa z.
5. Aplicarea unei transformări de scalare pentru a transforma volumul
rezultat în urma aplicării paşilor 1-4 în trunchiul de piramidă (volumul
canonic).

Cum axa de simetrie a volumului este dată de punctele PRP şi CW, rezultă că
transformarea de întindere este aceeaşi cu cea dedusă în cazul proiecţiei paralele.
După procesul de întindere, volumul de vizualizare este centrat pe axa z, iar
fereastra din planul de proiecţie este definită de:
-(umax-umin)/2 ≤ x ≤ (umax-umin)/2, -(vmax-vmin)/2 ≤ y ≤ (vmax-vmin)/2.
Fie VRP'=[0, 0, 0, 1]T(-PRP)Fxy (cu vrp'z = -prpn). Matricea de scalare este:
Sper = S(sx, sy, sz) unde
sx = 2 vrp'z/[(umax-umin)(vrp'z+B)],
sy = 2vrp'z/[(vmax-vmin)(vrp'z+B)]
şi
sz = -1/(vrp'z+B),
obţinută prin combinarea a două scalări (prima scalare face ca planele laterale să
aibă coeficienţi unitari, iar a doua scalare face ca planul din spate al volumului : z =
vrp'z+B să devină z = -1).
Deoarece scalarea pe axa z modifică poziţia planului de proiecţie şi a
planelor faţă şi spate, noile coordonate z sunt:
zproiecţie = - vrp'z/(vrp'z+B), zmin= - (vrp'z+F)/(vrp'z+B)
şi
zmax = -1.
Prin urmare
Nper = Tr(-VRP)RTr(-PRP)FxySper.