Documente Academic
Documente Profesional
Documente Cultură
2
v0
w0
O
w0
In mod natural ne ntrebam prin ce se deosebesc cele doua baze, respectiv repere ortonormate
ce le-ar avea ca baze. Cum am numit baza dreapta orice baza la fel orientata ca baza canonica,
sa caracterizam bazele drepte si respectiv strambe.
1
1
Deoarece v 0 = v/kvk =
(a, b)T si w 0 =
(b, a)T , matricea de trecere
2
2
2
2
a +b
a +b
de la baza canonica B din R2 , la baza B1 = (v 0 , w 0 ), este:
b
a
2
2
a2 + b2
TBB1 = [v 0 |w 0] = a b+ b
a2 + b2
a2 + b2
si det(TBB1 ) = 1 > 0. Deci B1 este baza dreapta. Calculand determinantul matricii de trecere
de la B la B2 = (v 0 , w 0 ) obtinem 1 < 0, deci baza B2 este o baza stanga.
In concluzie:
daca v = (a, b)T este un vector nenul, atunci versorul sau si versorul vectorului w =
(b, a)T definesc o baza ortonormata dreapta.
Pentru a vedea care este pozitia vectorilor unei baze ortonormate drepte (strambe) B =
(u1, u2 ) fata de baza canonica B = (e1 , e2 ), exprimam vectorii ui n functie de vectorii bazei B:
u1 = < u1 , e1 > e1 + < u1 , e2 > e2
u2 = < u2 , e1 > e1 + < u2 , e2 > e2
Dar
< ui , ej >=
< ui , ej >
= cos(u[
i , ej )
kui k kej k
|{z} |{z}
=1
Deci:
=1
u1 = cos(u[
[
1 , e1 ) e1 + cos(u
1 , e2 ) e2
u2 = cos(u[
[
2 , e1 ) e1 + cos(u
2 , e2 ) e2 ,
Notand = mas(u[
a n rosu), rezulta ca u1 = cos e1 +
1 , e1 ) (vezi Fig.8.1 baza colorat
cos(/2 ) e2 = cos e1 + sin e2 . u2 fiind ortogonal pe u1 poate avea coordonatele (vezi
discutia de mai sus relativ la vectorii ortogonali v, w R2 ):
1. u2 = sin e1 + cos e2 ,
3
e2
u1
u2
e2
e1
u1
e1
u2
adica masura unghiului dintre u2 si e2 este tot . In acest caz matricea de trecere
cos sin
, are determinatul det(TBB ) = cos2 + sin2 = 1 > 0
TBB =
sin
cos
Prin urmare baza ortonormata, B = (u1 = (cos , sin )T , u2 = ( sin , cos )T ) este o baza
dreapta.
Luand u2 vectorul opus celui din primul caz:
2. u2 = sin e1 cos e2
avem cos(u[
a masura unghiului dintre u2 si e2 nu este , ci
2 , e2 ) = cos = cos( ), adic
(vezi Fig.8.1 baza colorata n albastru). In acest caz matricea de trecere dintre cele doua
baze:
cos
sin
, are determinantul det(TBB ) = cos2 sin2 = 1 < 0
TBB =
sin cos
si deci baza ortonormata: B = (u1 = (cos , sin )T , u2 = (sin , cos )T ) este o baza stanga.
In concluzie O baza ortonormata B = (u1 , u2 ) din R2 are aceeasi orientare ca baza
canonica (e1 , e2 ), daca masura unghiului dintre u1 si e1 coincide cu masura unghiului
dintre u2 si e2 (Fig. 8.1, rosu). Baza B are orientare opusa bazei canonice, daca cele doua
unghiuri au masuri diferite (Fig. 8.1, albastru)
Avand aceasta informatie despre baze, sa deducem o modalitate de a identifica cand un reper
(sistem de axe ortogonale) este drept, respectiv stang.
Observam ca sistemul de axe xOy asociat reperului canonic
R = (O; e1 = (1, 0), e2 = (0, 1))
are particularitatea ca axa Oy se obtine rotind pe Ox n jurul lui O, n sens trigonometric cu 90
de grade (Fig. 8.2).
Un sistem de axe x Oy ale carui axe sunt asociate unui reper ortonormat drept, cu aceeasi
origine, R = (O; (u1, u2 )), are particularitatea ca unghiul dintre Ox si Ox este egal cu
4
y
y
e2
u2
x
u1
e1
Fig.8.2: Pozitia unui sistem de axe drept, x Oy fata de sistemul de axe canonic, xOy
unghiul dintre Oy si Oy (Fig. 8.2). Astfel structura sudata x Oy se obtine rotind cu unghiul
pe xOy. Deci si x Oy are aceeasi particularitate ca xOy si anume axa a doua se obtine rotind
prima axa n sens trigonometric cu 90 de grade.
In conluzie, un reper ortonormat din plan avand axele ortogonale asociate, Ox, Oy, astfel
ncat Oy se obtine din Ox printr-o rotatie de 90 de grade n sens trigonometric (anti-clockwise
sau counter-clockwise n computer graphics!), n jurul lui O, este un reper drept. Daca Oy se
obtine rotind Ox n sensul acelor ceasornicului, cu 90 de grade, atunci reperul este stang.
translatie pe directia OO . Notand cu xOy|z sistemul de axe ortogonale asociat primului reper
si cu x O y |z sistemul asociat celui de-al doilea reper, remarcam ca axele corespunzatoare din
cele doua repere sunt paralele, avand aceeasi directie (de exemplu Ox si O x au directia si
sensul lui e1 , etc).
Problema care se pune atunci cand avem doua repere este de a determina relatia dintre
coordonatele (x, y|, z) ale unui punct M n primul reper si coordonatele (x , y |z ) ale aceluiasi
punct n reperul al doilea.
y
y
(x, y) M (x , y )
e2
e2
O e1
O e1
Fig.8.4: Doua sisteme de axe ortogonale drepte obtinute unul din celalalt prin translatie.
Propozitia 8.2.1 Daca originea O a reperului R , obtinut prin translatie din reperul R, are
coordonatele (x0 , y0|, z0 ) relativ la reperul initial, R, si un punct arbitrar M are coordonatele
(x, y|, z) relativ la reperul R si respectiv coordonatele (x , y |z ) relativ la reperul R , atunci
relatiile dintre cele doua tipuri de coordonate sunt:
x = x x0
y = y y0 |
z = z z0
(8.1)
Demonstratie: Din regula lui Chasles (Fig.8.4 pentru cazul 2D) avem ca
OO + O M = OM
1
Bara | ntre e2 si e3 este inclusa pentru a preciza ca n cazul 2D baza contine doar vectorii e1 , e2 , iar n cazul
3D, pe e1 , e2 , e3 .
y
M (x, y)
(x , y )
u2
e2
u1
O e1
Fig.8.5: Doua sisteme de axe ortogonale drepte obtinute unul din celalalt prin rotatie n jurul originii
comune.
OO = x0 e1 + y0 e2 | + z0 e3 , O M = x e1 + y e2 | + z e3 ,
sau
x = x x0
y = y y0 |
z = z z0
OM = xe1 + ye2
OM = x u1 + y u2
Dar aceste relatii reprezinta de fapt exprimarea aceluiasi vector OM n doua baze ortonormate drepte, diferite, B = (e1 , e2 ), B = (u1 , u2 ). Din cursurile relativ la schimbari de baze
stim ca:
OM B = TBB OM B
(8.2)
Dar am dedus mai sus ca matricea de trecere dintre doua baze ortonormate drepte, din R este
matricea:
cos() sin()
, = mas(e[
as(e[
TBB =
1 , u1 ) = m
2 , u2 )
sin()
cos()
2
x
y
=
B
cos() sin()
sin()
cos()
x
y
(8.3)
1
T
iar relatia inversa se obtine tinand seama ca TBB
= TBB .
la un nou reper ortonormat, R = (O ; (u1, u2 , |u3)), care are o alta origine si o alta baza.
Presupunem ca R = (O; (e1|e2 |e3 )) este un reper ortonormat de axe Oxy|z, asociat bazei
| {z }
B
canonice, O are coordonatele (x0 , y0 |z0 ) relativ la R. Baza noului reper, B = (u1 , u2 |u3 ), este
o baza ortonormata, dreapta sau stramba.
Pentru a determina relatia dintre coordonatele (x, y, z) ale unui punct arbitrar M din En
(n=2,3) relativ la reperul R, respectiv coordonatele M(x , y , |z ), relativ la noul reper R =
(O ; (u1 , u2, |u3 )), se procedeaza astfel:
se efectueaza mai ntai o translatie a reperului initial, R, n reperul Rt = (O ; (e1 , e2 , |e3 )).
Notam cu O XY |Z sistemul de axe asociat. Punctul arbitrar M va avea relativ la acest reper,
coordonatele:
X = x x0
Y = y y0 |
(8.4)
Z = z z0
O M B = Xe1 + Y e2 | + Ze3
(8.5)
O M B = x u1 + y u2 | + z u3
X
x
x
X
T
Y | = TBB y | , y | = TBB
Y|
(8.6)
z
Z B
z
Z
B
B
B
x
X
x x0
T
T
y | = TBB
Y | = TBB
y y0 |
z
Z
z z0
(8.7)
X
x
Y | = TBB y |
(8.8)
z
Z B
B
nlocuind pe X, Y, Z cu expresia lor din (8.4). Astfel obtinem:
x0
x
x x0
x
x
y y0 | = TBB y | , y| = y0 | + TBB y |
z0
z
z z0
z
z
{z
}
| {z } | {z } |
M =punct
O =punct
(8.9)
vector
1. Fie R = (O; e1, e2 ) reperul canonic (al lumii reale 2D), de axe asociate xOy si O (2, 1)
un punct raportat la acest reper. Construiti un reper ortonormat drept cu originea n O si axele
avand versorii (u1 , u2 ), stiind ca masura unghiului dintre u1 si e1 este = /3. Sa se determine
relatia dintre coordonatele (x, y) ale unui punct M si coordonatele (x , y ) relativ la reperul
R = (O ; u1 , u2). Desenati cele doua sisteme de axe.
y
Y
x
(x, y)
(x , y )
e2
u1
u2
O
e1
e2
O
e1
Reperul fiind drept, nseamna ca baza ortonormata (u1, u2 ) este astfel ncat mas(e[
1 , u1 ) =
mas(e[
am prin cosinusii directori:
2 , u2 ) = /3. Prin urmare, vectorii unitari u1 , u2 i d
u1 = (cos , cos )T , = /2
u1 = (cos(/3), cos(/2 /3))T =
= (cos(/3),
sin(/3))T = (1/2, 3/2)T
u2 = ( 3/2, 1/2)T
Noul reper are originea n O si axele O x , O y , de directie si sens u1 , u2.
Din datele problemei, cunoastem coordonatele noii origii, O , relativ la reperul R, ceea ce
nseamna ca vectorul sau de pozitie este:
OO = 2e1 + e2
Coordonatele punctului M relativ la reperul R sunt (x, y), adica:
OM = xe1 + ye2
Se cer coordonatele punctului M relativ la noul reper, R .
axe O XY (axele colorate n verde). Coordonatele (X, Y ) ale unui punct arbitrar M relativ la
acest reper sunt:
X = x x0 = x + 2
(8.10)
Y = y y0 = y 1
2. Se considera o noua schimbare de reper, cu originea tot n O , dar directiile axelor sunt
date de u1 , u2 (axele colorate n rosu). Relatia dintre coordonatele (X, Y ) ale punctului M si
coordonatele (x y ) relativ la noul reper sunt date de relatiile de schimbare de baza:
O M B = TB B O M B
adica:
x
y
T
TBB
X
Y
1/2
3/2
3/2
1/2
si deci avem ca, coordonatele unui punct n reperul R , n functie de coordonatele aceluiasi
punct n reperul R sunt:
3/2
x+2
1/2
x
=
y1
y
3/2
1/2
10
D
xp
yp
Fig.8.6: Sistemul de axe al device-lui de afisare grafica.
11
D
M
(a, c)
O
yp
(pl , pb )
Fig.8.7: Ilustrarea problematicii maparii unui dreptunghi pe un viewport pe device-ul de iesire al unui
sistem grafic.
Viewportul este domeniul dreptunghiular de pe ecran ce are varfurile diagonal opuse (pl , pb ),
(pr , pt ), unde pl este prescurtarea de la pixel left, pr -pixel right, pt -pixel top si pb -pixel bottom.
Vizualizarea se efectueaza mapand, adica aplicand fereastra lumii reale pe viewportul de pe
ecran, mai precis aplicand fiecare punct, M(x, y), din figura inclusa n fereastra lumii reale
ntr-un pixel, P (xp , yp ), din viewportul de pe ecran (Fig.8.7).
Pentru a ntelege mai bine problema pe care o abordam consideram un exemplu simplu de
grafica 2D.
Dorim sa desenam pe ecran graficul functiei f (x) = x2 sin x, x [1, 2]. In acest scop
divizam intervalul de definitie [1, 2] n N = 60 subintervale adiacente de lungimi egale. Pasul
(distanta dintre doua puncte de diviziune consecutive) este h =lungimea intervalului/N=3/60 =
0.05. Notam cu xi = 1+ih, i = 0, 60 punctele de diviziune. Calculam valorile functiei n xi
si obtinem yi = x2i sin xi , i = 0, 60. In urma discretizarii graficul este reprezentat de multimea
de puncte (norul de puncte din exprimarea de mai sus) (xi , yi ), i = 0, 60 (Fig.8.8).
Evident ca coordonatele (xi , yi ) sunt coordonate relativ la sistemul de axe ortogonale xOy
(al lumii reale). Fereasta minima n care intra aceste puncte are parametrii a = 1, b = 2,
c = min{yi , i = 1, N}, d = max{yi , i = 1, N}. Prin urmare graficul discretizat intra n
fereastra [a, b] [c, d]. Dorim sa desenem graficul pe ecran n viewportul definit de pl = 100,
pr = 400, pt = 50, pb = 375. Pentru a vizualiza graficul, mapam punctele (xi , yi ) pe ecran,
adica pe pixelii de coordonate ((xp )i , (yp )i ), i = 0, N si apoi unim cu un segment de dreapta
doi pixeli consecutivi ((xp )i , (yp )i ), ((xp )i+1 , (yp )i+1 ), i = 0, N 1.
Pentru a mapa fereastra raportata la un sistem drept pe o fereastra (viewport) pe ecranul unui
PC, ce este raportat la un reper stang avem nevoie de:
12
4
3
2
1
0
1
1
Propozitia 8.5.1 Daca R = (D; e1 , e2 ) este reperul ortonormat, stramb, asociat ecranului,
de axe Dxp yp , O este un punct pe ecran de coordonate pixel (x0p , yp0 ), iar R = (O, e1 , e2 ) este
un reper drept, de axe Oxy (Fig.8.9), atunci daca punctul M are coordonatele (x, y) relativ la
sistemul drept Oxy si coordonatele (xp , yp ) relativ la sistemul stramb de axe, Dxp yp , relatiile
dintre cele doua seturi de coordonate ale lui M sunt:
xp =
x + x0p
yp = y + yp0
D
e1
xp
e2
M (xp , yp )
(x, y)
e2
yp
(8.11)
e1
DO = x0p e1 + yp0(e2 ),
OM = xe1 + ye2 ,
DM = xp e1 + yp (e2 )
13
si nlocuind obtinem:
xp =
x + x0p
yp = y + yp0
(8.12)
y
(x , y )
M (x, y)
F
x
x
Un punct arbitrar M(x, y) al obiectului de vizualizat are relativ la sistemul F x y coordonatele (x , y ) cu:
x = x a
(8.13)
y = y c
Fereastra ce trebuie mapata pe ecran este n noul sistem de coordonate [0, b a] [0, d c].
Transformam fereastra [0, b a] [0, d c] ntr-una avand dimensiunile viewportului de
pe ecran, adica lungimea pr pl si naltimea pb pt . Aceasta transformare este definita de o
aplicatie, numita scalare de factori A, B, unde scalarea S : R2 R2 are expresia analitica:
S(x , y ) = (Ax , By ),
A, B > 0
Observam ca S(0, 0) = 0. Daca A > 1, B > 1, atunci S produce dilatare pe ambele directii,
F x , F y , iar daca A < 1, B < 1, atunci produce contractie.
Cum alegem factorii de scalare astfel ncat fereastra [0, b a] [0, d c] sa fie mapata pe
fereastra [0, pr pr ] [0, pb pt ] (raportate ambele la sistemul de coordonate F x y )?
Deoarece originea F (x = 0, y = 0) este mapata n ea nsasi, punem conditia ca punctul
diagonal opus al ferestrei, (b a, d c) (Fig.8.10), sa fie aplicat de scalarea S n punctul
(pr pl , pb pt ) si obtinem:
S
(b a, d c) = (pr pl , pb pt )
A=
pr pl
pb pt
,B =
ba
dc
14
S(x , y ) = (X , Y ), unde
pr pl
X = ba x
p pt
Y = b
y
dc
(8.14)
M (X , Y )
F
(b a, d c)
(pr pl , pb pt )
x
x
Fig.8.10: Efectul transformarii S asupra domeniului dreptunghiular, [0, b a] [0, d c], este domeniul
dreptunghiular avand dimensiunile viewportului de pe ecran (cel cu frontiera colorata cu rosu).
Pentru a vizualiza punctele Pi trebuie sa le determinam coordonatele pixel, (xp , yp ). Pentru a ntelege modul de determinare al acestor coordonate presupun ca sistemul de axe x F y
se lipeste pe ecran astfel ncat dreptunghiul [0, pr pl ] [0, pb pt ] din acest sistem sa se
suprapuna peste viewport. Astfel punctul F are coordonatele pixel (pl , pb ) (Fig.8.11).
D
xp
P (X , Y )
(xp , yp )
F (pl , pb )
yp
Fig.8.11: Pozitionarea sistemului de axe ortogonale F x y pe ecran.
15
(8.15)
Tinand acum cont n (8.15) de relatiile (8.14), (8.13) obtinem relatiile dintre coordonatele (x, y)
ale unui punct M din fereastra [a, b] [c, d] si coordonatele pixel, (xp , yp ), ale mapatului sau
P , pe viewportul de varfuri diagonal opuse (pl , pb ), (pr , pt ):
pr pl
(x a)
ba
pb pt
= pb
(y c)
dc
xp = pl +
yp
(8.16)
Deoarece coordonatele pixel sunt numere ntregi, relatiile din (8.16) presupun atribuirea unui
numar real unui ntreg. Pentru a evita erorile de aproximare a unui real printr-un ntreg n loc
de (8.16) se recomada relatiile:
pr pl
(x a) + 0.5]
ba
pb pt
yp = [pb
(y c) + 0.5],
dc
xp = [pl +
(8.17)
adica se calculeaza partea ntreaga a membrilor drepti. Astfel n cazul n care membrii drepti
din (8.16) ar fi (230.15, 318.77) rotunjirea s-ar face la (230, 318), n timp ce folosind (8.17)
xp = 230, iar yp = 319, adica aproximarea este mai buna.
a1 x1 + a2 x2 + a3 x2 = 0
}
b1 x1 + b2 x2 + b3 x2 = 0
16
S
u
w
v
u
x
O baza n S consta dintr-un vector nenul u. Odata cu u nsa si u apartine lui S . Astfel
(v, w, u), respectiv (v, w, u) sunt baze n R3 (ca reuniune de baze din S, respectiv S ). Cum
cele doua baze difera prin sensul vectorului al treielea, ele au orientari diferite: una este baza
dreapta si alta stramba. Problema pe care o abordam n continuare este aceea de a determina
sensul +u sau u care conduce la o baza dreapta.
Subspatiul S este multimea solutiilor sistemului
a1 x1 + a2 x2 + a3 x2 = 0
b1 x1 + b2 x2 + b3 x2 = 0
Matricea sistemului are rangul 2 deoarece vectorii v1 , v2 sunt liniar independenti. Presupunem,
de exemplu, ca determinantul principal este:
a1 a2
=
b1 b2
Notand necunoscuta secundara cu := x3 si rezolvand sistemul folosind
avem:
a3 a2
a1 a3
a2 a3
b3 b2
b2 b3
b1 b3
=
x2 =
=
x1 =
a1 a2
a1 a2
a1 a2
b1 b2
b1 b2
b1 b2
v=
a a , a a , || b2 b3
1 2
1 2
b1 b2
b1 b2
a1
b1
a1
b1
a3
b3
a2
b2
, a1 a3 , a1 a2 , R
b1 b3 b1 b2
17
v1
v2
Reciproc, daca produsul vectorial a doi vectori este vectorul nul, atunci fie cel putin un vector
este vectorul nul, fie cei doi vectori sunt coliniari.
Norma produsului vectorial este egal cu produsul normelor celor doi vectori si sinusul
unghiului dintre ei: kv wk = kvkkwk sin(v,
d
w) (se verifica prin calcul direct).
Produsul scalar dintre vectorul produs vectorial v w si un vector u R3 este egal cu
determinantul matricii A = [v|w|u], adica < v w, u >= det([v|w|u]).
Demonstratie: Fie v = (x1 , x2 , x3 )T , w = (y1 , y2, y3 )T , u = (z1 , z2 , z3 )T . Produsul scalar este
egal cu:
x1 x2 x3
x1 x2
x1 x3
x2 x3
z3 = y1 y2 y3 =
z2 +
z1
< v w, u > =
y1 y2
y1 y3
y2 y3
z1 z2 z3
x1 y1 z1
= x2 y2 z2 = det([v|w|u])
x3 y3 z3
(8.18)
Produsul < v w, u >= det([v|w|u]) se numeste produsul mixt al vectorilor v, w, u si se
noteaza v w u.