Sunteți pe pagina 1din 16

Curs 8

Aplicaţii ale schimbărilor de repere ı̂n computer graphics

8.1 Aplicarea unei ferestre raportată la un reper ortogonal drept pe un


viewport pe ecran
8.1.1 Formularea problemei
Problema pe care o abordăm şi rezolvăm este următoarea: un obiect 2D este discretizat şi
reprezentat de o mulţime finită de puncte raportate la un sistem drept, de axe ortogonale xOy,
numit ı̂n grafică, sistemul lumii reale. Norul de puncte aparţine ferestrei [a, b] × [c, d]. Un punct
arbitrar din nor este M (x, y).

y
(b, d)
E xe
(pr , pt )
M
P

(a, c) (pl , pb )
ye
O x

Fig.8.1: Ilustrarea problematicii mapării unui dreptunghi pe un viewport pe ecran.

Dorim să vizualizăm obiectul 2D din dreptunghiul lumii reale, [a, b] × [c, d], pe un viewport
pe ecranul raportat la sistemul său stâng de coordonate. Viewportul este domeniul dreptunghi-
ular de pe ecran ce are vârfurile diagonal opuse (pl , pb ), (pr , pt ), unde pl este prescurtarea de
la pixel left, pr -pixel right, pt -pixel top şi pb -pixel bottom). Vizualizarea
se efectuează ”mapând”, adică aplicând fereastra lumii reale pe viewportul de pe ecran, mai
precis aplicând fiecare punct M din figura inclusă ı̂n fereastra lumii reale ı̂ntr-un pixel, P , din
viewportul de pe ecran (Fig.8.1).
Ecranul unui PC sau al device-ului de ieşire pentru un sistem grafic este o matrice de pixeli. Pixel-ul (pres-
curtare de la picture element) este unitatea de adresare pe ecran.
Matricea de pixeli are indicii (i, j) = (xe , ye ) ı̂n mulţimea
{0, 1, 2, . . . , pixxM } × {0, 1, 2, . . . , pixyM }

1
2 Cursul 8, Algebră liniară °
c E. Petrişor, noiembrie 2007

Numărul de pixeli pe orizontală şi al celor de pe verticală defineşte rezoluţia ecranului. În notaţia de mai sus
rezoluţia este pixxM × pixyM . În acelaşi timp indicii de poziţie ı̂n matricea de pixeli, (xe , ye ), reprezintă şi
poziţia pixelului ı̂n sistemul de coordonate al ecranului.
Pentru a ı̂ntelege mai bine problema pe care o abordăm considerăm un exemplu simplu de
grafică 2D:
Dorim să desenăm pe ecran graficul funcţiei f (x) = x2 sin x, x ∈ [−1, 2]. În acest scop
divizăm intervalul de definiţie [−1, 2] ı̂n N = 60 subintervale adiacente de lungimi egale. Pasul
(distanţa dintre două puncte de diviziune consecutive) este h =lungimea intervalului/N =3/60 =
0.05. Notăm cu xi = −1 + i ∗ h, i = 0, 60 punctele de diviziune. Calculăm valorile funcţiei
ı̂n xi şi obţinem yi = x2i sin xi . În urma discretizării graficul este reprezentat de multimea de
puncte (norul de puncte de mai sus) (xi , yi ), i = 0, 60 (Fig.8.2).

−1
−1 0 1 2

Fig.8.2: Punctele de pe grafic ı̂n fereastra [a, b] × [c, d] = [−1, 2] × [−1, 4]


.

Evident că coordonatele (xi , yi ) sunt coordonate relativ la sistemul de axe ortogonale xOy
(al lumii reale). Fereastă minimă ı̂n care intră aceste puncte are parametrii a = −1, b = 2, c =
min{yi , i = 1, N }, d = max{yi , i = 1, N }. Prin urmare graficul discretizat intră ı̂n fereastra
[a, b] × [c, d]. Dorim să desenem graficul pe ecran ı̂n viewportul definit de pl = 100, pb = 400,
pt = 50, pb = 375. Pentru a vizualiza graficul, mapăm punctele (xi , yi ) pe ecran, adică pe
pixelii ((xe )i , (ye )i ), i = 0, N şi apoi unim cu un segment de dreaptă doi pixeli consecutivi
((xe )i , (ye )i ), ((xe )i+1 , (ye )i+1 ), i = 0, N − 1. Pentru a efectua maparea fereastră–viewport
introducem câteva noţiuni şi rezultate auxiliare:

8.1.2 Schimbări de repere prin translaţie


Dacă R = (O, e1 , e2 |, e3 ) este un reper ortonormat drept ı̂n plan sau spaţiul 3D1 şi O′ un
punct care are relativ la acest reper coordonatele (x0 , y0 |, z0 ) atunci reperul drept ce are aceeaşi
bază, dar altă origine, O′ , R′ = (O′ ; e1 , e2 |, e3 ), se zice că s-a obţinut din reperul R printr-o
−−→
translaţie pe direcţia OO′ . Notând cu xOy|z sistemul de axe ortogonale asociat primului reper
1
Bara | ı̂ntre e2 şi e3 este inclusă pentru a preciza că ı̂n cazul 2D baza conţine doar vectorii e1 , e2 , iar ı̂n cazul
3D, pe e1 , e2 , e3 .
Cursul 8, Algebră liniară °
c E. Petrişor, noiembrie 2007 3

şi cu x′ O′ y ′ |z ′ sistemul asociat celui de-al doilea reper, remarcăm că axele corespunzătoare din
cele două repere sunt paralele, având aceeaşi direcţie (de exemplu Ox şi O′ x′ au direcţia şi
sensul lui e1 , etc).
Problema care se pune atunci când avem două repere este de a determina relaţia dintre
coordonatele (x, y|, z) ale unui punct M ı̂n primul reper şi coordonatele (x′ , y ′ |z ′ ) ale aceluiaşi
punct ı̂n reperul al doilea.

y′

y M

O′
x′

O x

Fig.8.3: Două sisteme de axe otogonale drepte obţinute unul din celălalt prin translaţie.

Propoziţia 8.1.1 Dacă originea O′ a reperului R′ obţinut prin translaţie are coordonatele
(x0 , y0 |, z0 ) relativ la reperul iniţial R şi un punct arbitrar M are coordonatele (x, y|, z) relativ
la reperul R şi respectiv coordonatele (x′ , y ′ |z ′ ) relativ la reperul R′ , atunci relaţiile dintre cele
două tipuri de coordonate sunt:
x ′ = x − x0
y ′ = y − y0 | (8.1)

z = z − z0
Demonstraţie: Din regula lui Chasles (Fig.8.3 pentru cazul 2D) avem că
−−→′ −− → −−→
OO + O′ M = OM
Din definiţia coordonatelor relativ la un reper (vezi cursul precedent) rezultă că:
−−→′ −−→ −−→
OO = x0 e1 + y0 e2 | + z0 e3 , O′ M = x′ e1 + y ′ e2 | + z ′ e3 , OM = xe1 + ye2 | + ze3
Înlocuind ı̂n relaţia Chasles de mai sus rezultă că:
x = x′ + x0 x ′ = x − x0
y = y ′ + y0 | sau y ′ = y − y0 |
z = z ′ + z0 z ′ = z − z0
4 Cursul 8, Algebră liniară °
c E. Petrişor, noiembrie 2007

Pentru a mapa o fereastră raportată la un sistem drept pe o fereastră (viewport) pe ecranul unui
PC, ce este raportat la un reper stâng avem nevoie de:
Propoziţia 8.1.2 Dacă R = (E; e1 , −e2 ) este reperul ortonormat stâng asociat ecranului, de
axe Exe ye (xe a se citi x-ecran, sau abscisa pe ecran şi analog ye ), iar O este un punct pe ecran
de coordonate (x0e , ye0 ), iar R′ = (O, e1 , e2 ) este un reper drept de axe Oxy (Fig.8.4), atunci
dacă punctul P are coordonatele (x, y) relativ la sistemul drept Oxy şi coordonatele (xe , ye )
relativ la sistemul stâng de axe Exe ye , relaţiile dintre cele două seturi de coordonate ale lui P
sunt:
xe = x + x0e
(8.2)
ye = −y + ye0

e1
E xe
y

−e2
P (xe , ye )
e2 (x, y)

O e1 x
ye

Fig.8.4: Două sisteme de axe otogonale opus orientate.

Demonstraţie: Scriem aceeaşi relaţie a lui Chales ca ı̂n cazul precedent:


−−→ −→ −→
EO + OP = EP ,

unde:
−−→ −→ −→
EO = x0e e1 + ye0 (−e2 ), OP = xe1 + ye2 , EP = xe e1 + ye (−e2 )
şi ı̂nlocuind obţinem:
xe = x + x0e
(8.3)
ye = −y + ye0

8.1.3 Transformarea unui interval [a, b] ı̂ntr-un interval [c, d] din R


Pentru a putea contracta/dilata fereastra lumii reale la dimensiunile viewportului de pe ecran,
folosim funcţia cea mai simplă care aplică bijectiv un interval real [a, b] pe un interval [c, d].
Funcţia polinomială de grad 1, ϕ(x) = Ax + B, ce realizează corespondenţa bijectivă dintre
[a, b] şi [c, d], se obţine impunând condiţiile ϕ(a) = c, ϕ(b) = d. Astfel avem:
d−c d−c
A= , B =c−
b−a b−a
Cursul 8, Algebră liniară °
c E. Petrişor, noiembrie 2007 5

şi deci:
d−c
ϕa,b;c,d (x) = c + (x − a), ∀ x ∈ [a, b] (8.4)
b−a

8.1.4 Construcţia aplicaţiei mapare fereastră–viewport


Mulţimea de puncte Mi (xi , yi ), i = 0, N ce reprezintă obiectul 2D discretizat este in clusă
ı̂n dreptunghiul [a, b] × [c, d], raportat la sistemul drept de axe ortogonale xOyz.
• Efectuăm o schimbare de repere drepte prin translaţie, cu originea ı̂n colţul stânga jos,
F (a, c), al ferestrei şi notăm cu F x′ y ′ sistemul de axe asociat.
y
y′

F x′

O x

Un punct arbitrar M (x, y) al obiectului de vizualizat are relativ la sistemul F x′ y ′ coordo-


natele (x′ , y ′ ) cu:
x′ = x − a
(8.5)
y′ = y − c
Fereastra ce trebuie mapată pe ecran este ı̂n noul sistem de coordonate [0, b − a] × [0, d − c].
• Transformăm fereastra [0, b − a] × [0, d − c] ı̂ntr-una având dimensiunile viewportului de
pe ecran, adică lungimea pr − pb şi ı̂nalţimea pb − pt . Această transformare este definită de
aplicaţia
S(x′ , y ′ ) = (ϕ0,b−a;0,pr −pl (x′ ), ϕ0,d−c;0,pb −pt (y ′ ))
unde funcţia ϕ este funcţia definită ı̂n (8.4), ce mapează un interval pe altul. Mai precis
ϕ0,b−a;0,pr −pl mapează [0, b−a] pe [0, pr −pb ], iar ϕ0,d−c;0,pb −pt mapează pe [0, d−c] pe [0, pb −pt ].
Astfel avem:

 ′ pr − pb ′

 X = x
 b−a
S(x′ , y ′ ) = (X ′ , Y ′ ), unde (8.6)

 p b − p t
 Y′ =
 y′
d−c
Practic se aplică transformarea S fiecărui punct Mi (x′i , yi′ ), al obiectului discret şi se obţin
punctele Pi (Xi′ , Yi′ ) care aparţin acum domeniului dreptunghiular având dimensiunile view-
portului de pe ecran. (Fig.8.5 dreptunghiul roşu).
• Pentru a vizualiza punctele Pi trebuie să le determinăm coordonatele ecran. Pentru a
ı̂nţelege modul de determinare al acestor coordonate presupun că sistemul de axe xF y ′ se
”lipeşte” pe ecran astfel ı̂ncât dreptunghiul [0, pr − pb ] × [0, pb − pt ] din acest sistem să se
suprapună peste viewport. Astfel punctul F are coordonatele ecran (pl , pb ) (Fig.8.6).
6 Cursul 8, Algebră liniară °
c E. Petrişor, noiembrie 2007

y
y′

P (X ′ , Y ′ )

F x′

O x

Fig.8.5: Efectul transformării S asupra domeniului dreptunghiular [0, b − a] × [0, d − c] este domeniul
dreptunghiular având dimensiunile viewportului de pe ecran (cel cu frontiera colorată cu roşu)
.

E
xe
y′

P (X ′ , Y ′ )
(xe , ye )
F (pl , pb ) x′

ye

Fig.8.6: Poziţionarea sistemului de axe ortogonale F x′ y ′ pe ecran.

Un punct P ce are coordonatele (X ′ , Y ′ ) ı̂n sistemul F x′ y ′ va avea conform relaţiei (8.2)


coordonatele ecran:
xe = p l + X ′
(8.7)
ye = p b − Y ′

Ţinând acum cont ı̂n (8.7) de relaţiile (8.6), (8.5) obţinem relaţiile dintre coordonatele (x, y) ale
unui punct M din fereastra [a, b] × [c, d] şi coordonatele ecran (xe , ye ) ale ”mapatului” sau P ,
pe viewportul de vârfuri diagonal opuse (pl , pb ), (pr , pt ):

pr − pl
xe = p l + (x − a)
b−a (8.8)
p b − pt
ye = pb − (y − c)
d−c

Deoarece coordonatele ecran sunt numere ı̂ntregi relaţiile din (8.8) presupun atribuirea unui
număr real unui ı̂ntreg. Pentru a reduce erorile de aproximare ı̂n loc de (8.8) se recomadă
Cursul 8, Algebră liniară °
c E. Petrişor, noiembrie 2007 7

relaţiile:
p r − pl
xe = [pl + (x − a) + 0.5]
b−a (8.9)
pb − pt
ye = [pb − (y − c) + 0.5],
d−c
adică se calculează partea ı̂ntreagă a membrilor drepţi. Astfel ı̂n cazul ı̂n care membrii drepţi din
(8.8) sunt (230.15, 318.77) rotunjirea s-ar face la (230, 318) ı̂n timp ce folosind (8.9) xe = 230,
iar ye = 319, adică aproximarea este mai bună.
Informaţii pentru cine doreşte să testeze algoritmul de mapare ı̂n Borlandc:
• se include graphics.h
• Se setează pe on, Graphics Library, ı̂n meniul: Options →Linker→Libraries
• În programul ı̂n care se include graphics.h se iniţializează modul grafic cu ajutorul funcţiei initgraph
(vezi help-ul din Borlandc). Unul din argumentele acestei funcţii este calea spre driverul egavga.bgi ce se
găseşte ı̂n sub-directorul bgi din borlandc, de exemplu,
"c:\\borlandc\\bgi" . Nu se setează calea, dacă egavga.bgi a fost copiat ı̂n directorul curent.

8.2 Proiecţia perspectivă ı̂n grafica 3D


Pentru a vizualiza corpurile 3D pe ecranul unui PC sau al device-ului de ieşire al unui
sistem grafic se folosesc diverse metode. Una dintre metodele care conduce la imagini realiste
este proiecţia perspectivă sau proiecţia centrală.

8.2.1 Definiţia proiecţiei perspectivă


Considerăm spaţiul afin euclidian E3 raportat la sistemul de axe ortogonale xOyz şi planul
π paralel cu planul xOy, având ecuaţia z = d, d 6= 0.

Definiţia 8.2.1 Proiecţia perspectivă de centru O pe planul π este aplicaţia

PO : E3 \ {(x, y, z) | z = 0} → π

care asociază fiecărui punct M (x, y, z) ce nu aparţine planului xOy, punctul M ′ de intersecţie
a dreptei (OM ) cu planul π.

• S-a exclus planul xOy din domeniul de definiţie deoarece dacă M este un punct din acest
plan, atunci dreapta (OM ) este paralelă cu planul π şi deci nu ı̂l poate intersecta.
• Preimaginea punctului M ′ ∈ π, PO−1 (M ′ ), adică mulţimea punctelor din spaţiu ce sunt
proiectate ı̂n M ′ constă ı̂n dreapta (OM ) minus punctul O. Deci proiecţia perspectivă nu este
injectivă.
• Expresia analitică aproiecţiei PO
Să determinăm coordonatele proiecţiei punctului M (x, y, z), z 6= 0. Dreapta (OM ) este
mulţimea:
−→ −−→
(OM ) = {P ∈ E3 | OP = tOM = t(x, y, z)T , t ∈ R}
8 Cursul 8, Algebră liniară °
c E. Petrişor, noiembrie 2007

z M (x, y, z)

M′ π: z=d

O y

Fig.8.7: Ilustrarea proiecţiei perspectivă de centru O pe planul π : z = d.

Prin urmare un punct arbitrar de pe dreapta (OM ) are coordonatele (tx, ty, tz). Punctul P
aparţine planului π dacă coordonata a treia, tz = d, de unde rezultă că punctul proiecţie M ′ =
PO (M ) corespunde parametrului t = d/z şi deci:
³x y ´
PO (x, y, z) = d, d, d
z z
Identificând planul π cu E2 raportat la reperul ortonormat (O′ ; e1 , e2 ), unde {O′ } = Oz ∩ π şi
e1 , e2 sunt versorii axelor Ox, respectiv Oy, proiecţia perspectivă are expresia analitică:
³x y ´
P(x, y, z) = d, d
z z

8.2.2 Coordonate sferice ı̂n spaţiul E3


Poziţia fiecărui punct M din spaţiul E3 raportat la sistemul de axe ortogonale xOyz se dă
prin coordonatele sale carteziene (x, y, z). Dacă A este punct de coordonate (x0 , y0 , z0 ) atunci
locul geometric al punctelor din spaţiu care au:
• aceeaşi abscisă ca şi A este planul de ecuaţie x = x0 ;
• aceeaşi ordonată ca şi A este planul de ecuaţie y = y0 ;
• aceeaşi cotă ca şi A este planul z = z0 .
Planele de ecuţii x = cst, y = cst, z = cst se numesc plane de coordonate.
Poziţia unui punct M ∈ E3 se poate indica şi prin coordonatele (ρ, ϕ, θ), numite coordonate
sferice şi care au următoarea semnificaţie geometrică (Fig. 8.8).
−−→
• ρ este distanţa de la punctul M la originea sistemului de axe xOyz, ρ = kOM k;
−−→ −−→
• ϕ este măsura unghiului dintre OM şi planul xOy, adică măsura unghiului dintre OM ′ şi
−−→
OM . Pentru punctele M (x, y, z) cu z > 0, ϕ este pozitiv, iar când z < 0, ϕ < 0.
• θ este unghiul polar2 al proiecţiei M ′ a punctului M pe planul xOy, adică θ este măsura
2
notaţia θ pentru această coordonată este justificată de faptul că este o coordonată polară ı̂n planul xOy, şi
notaţia consacrată pentru unghiul polar este θ (vezi cursul precedent).
Cursul 8, Algebră liniară °
c E. Petrişor, noiembrie 2007 9

M ′′

M (ρ, ϕ, θ)
ρ

ϕ P
O y
θ
Q M′

Fig.8.8: Coordonatele sferice ale unui punct M ∈ E3 .

−−→
unghiului orientat dintre e1 versorul axei Ox şi OM ′ (Fig. 8.8).
Relaţia dintre coordonatele sferice şi coordonatele carteziene ale unui punct
Din triunghiurile OM M ′′ , OM M ′ şi OQM ′ (Fig. 8.8) rezultă următoarele relaţii:

x = ρ cos θ cos ϕ
y = ρ sin θ cos ϕ (8.10)
z = ρ sin ϕ

Un punct din spaţiu are coordonatele sferice (ρ, ϕ, θ) restricţionate respectiv la următoarele
intervale: ρ ∈ (0, ∞), ϕ ∈ [−π/2, π/2], θ ∈ [0, 2π]. Aplicaţia r : (0, ∞) × (−π/2, π/2) ×
[0, 2π) → R3 , definită prin:

r(ρ, ϕ, θ) = (ρ cos θ cos ϕ, ρ sin θ cos ϕ, ρ sin ϕ) (8.11)


| {z } | {z } | {z }
x y z

se numeşte schimbare de coordonate3 .


Problemă. Dacă se cunosc coordonatele carteziene (x, y, z) ale unui punct M cum aflaţi
coordonatele sale sferice? Ce √
coordonate sferice
√ are originea O a sistemului xOyz, punctul
A(0, 0, −5) şi punctul B = (− 3/2, −1/2, 3)?
Fie A(ρ0 , ϕ0 , θ0 ) un punct fixat ı̂n E3 . Locul geometric al punctelor din spaţiu ce au:
• aceeaşi coordonată ρ ca şi A, adică ρ = ρ0 > 0 este sfera cu centrul ı̂n O şi de rază ρ0
(Fig.8.9 sus-stânga).
• aceeaşi coordonată ϕ ca şi A, ϕ = ϕ0 , este conul infinit, drept, cu vârful ı̂n O şi unghiul
dintre generatoare şi Oz egal cu ϕ0 (Fig.8.9 jos-stânga pentru cazul ϕ0 > 0). Dacă ϕ0 = 0
3
Problemă de analiză matematică: prin ce proprietăţi diferă funcţiile ce au această expresie analitică, dar dome-
niul de definiţie este a) [0, ∞) × [−π/2, π/2] × [0, 2π], b) (0, ∞) × [−π/2, π/2] × [0, 2π],
c) (0, ∞) × (−π/2, π/2) × [0, 2π).
10 Cursul 8, Algebră liniară °
c E. Petrişor, noiembrie 2007

z
z

A
y
θ0

y
x
x

A y
x
A
y
x

Fig.8.9: Sus: sfera de ecuaţie ρ = ρ0 (stânga), semiplanul de ecuaţie θ = θ0 (dreapta). Jos: conul de
ecuaţie ϕ = ϕ0 > 0 (stânga), şi de ecuaţie ϕ = ϕ0 < 0 (dreapta).

atunci conul degenerează ı̂n planul xOy, iar dacă ϕ0 < 0 atunci conul este poziţionat ca ı̂n
Fig.8.9, jos-dreapta.
• aceeaşi coordonată θ ca şi A, θ = θ0 , este semiplanul mărginit de z ′ Oz şi (unde Oz ′ are
direcţia −e3 ), perpendicular pe xOy. Intersecţia semiplanului cu planul xOy este o semidreaptă
ce formează cu Ox unghiul θ (Fig.8.9 sus-dreapta).

Pentru a construi un reper ortonormat cu originea ı̂ntr-un punct pe sferă introducem următoarele
noţiuni auxiliare:
O curbă diferenţiabilă din spaţiul E3 , dată parametric, este imaginea unui interval [a, b]
printr-o aplicaţie diferenţiabilă r : [a, b] → R3 , r(t) = (x(t), y(t), z(t)). Curba este interpretată
ca şi traiectoria unui punct mobil ı̂n intervalul de timp [a, b]. Poziţia la momentul t a punctului
mobil este (x(t), y(t), z(t)) = r(t) (Fig.8.10). Sensul de mişcare este de la r(a) spre r(b).
Vectorul viteză la momentul t sau vectorul director al tangentei ı̂n punctul atins la momentul
Cursul 8, Algebră liniară °
c E. Petrişor, noiembrie 2007 11

r ṙ(t) r(b)
y
a b
t r(a)

Fig.8.10: Curbă dată parametric şi vectorul director al tangentei ı̂n punctul r(t).

t este vectorul4 :  
x′ (t)
ṙ(t) =  y ′ (t) 
z ′ (t)

Propoziţia 8.2.1 Fie sfera centrată ı̂n originea sistemului de axe ortogonale, având ı̂n coordo-
nate sferice ecuaţia ρ = ρ0 . Oricărui punct E(ρ0 , ϕ0 , θ0 ), ϕ 6= ±π/2, de pe această sferă i
se asociază reperul ortonormat drept RE = (E; v1 , v2 , v3 ) unde v1 este versorul tangentei la
cercul paralel prin E, v2 este versorul tangentei la (semi)cercul meridian prin E, iar v3 este
−−→
versorul direcţiei OM .

Demonstraţie: Cercul paralel prin punctul E este cercul de intersecţie al sferei ρ = ρ0 cu conul
ϕ = ϕ0 . Prin urmare el este parametrizat de r1 : [0, 2π) → R3 , r1 (θ) = r(ρ0 , ϕ0 , θ) unde r este
schimbarea de coordonate (8.11). Astfel vectorul tangent ı̂n punctul E la cercul paralel este:

ṙ1 (θ0 ) = ṙθ (ρ0 , ϕ0 , θ0 )

Dar
ṙθ (ρ0 , ϕ0 , θ) = (−ρ0 sin θ cos ϕ0 , ρ0 cos θ cos ϕ) , 0)T
ṙ1 (θ0 ) = (−ρ0 sin θ0 cos ϕ0 , ρ0 cos θ0 cos ϕ0 , 0)T
ṙ1 (θ0 )
v1 = = (− sin θ0 , cos θ0 , 0)T
kṙ1 (θ0 )k
Semicercul meridian prin punctul E este semicercul de intersecţie al sferei ρ = ρ0 cu semiplanul
θ = θ0 şi este parametrizat de r2 : (−π/2, π/2) → R3 , r2 (ϕ) = r(ρ0 , ϕ, θ0 ). Vectorul tangent
la semicercul meridian prin E este vectorul:

ṙ2 (ϕ0 ) = ṙϕ (ρ0 , ϕ0 , θ0 )


4
Demonstraţia că acesta este ı̂ntr-adevăr vectorul director al tangentei (adică vectorul ce dă direcţia tangentei)
se va da ı̂n Cursul 13.
12 Cursul 8, Algebră liniară °
c E. Petrişor, noiembrie 2007

v2 v3

v1
E
O

y
x

Fig.8.11: Reperul drept asociat unui punct pe o sferă cu centrul ı̂n originea axelor de coordonate.

Calculăm derivata lui r ı̂n raport cu ϕ şi o evaluăm ı̂n (ρ0 , ϕ0 , θ0 ):

ṙϕ (ρ0 , ϕ, θ0 ) = (−ρ0 cos θ0 sin ϕ, −ρ0 sin θ0 sin ϕ, ρ0 cos ϕ)T
ṙ2 (ϕ0 ) = (−ρ0 cos θ0 sin ϕ0 , −ρ0 sin θ0 sin ϕ0 , ρ0 cos ϕ0 )T
ṙ2 (ϕ0 )
v2 = = (− cos θ0 sin ϕ0 , − sin θ0 sin ϕ0 , cos ϕ0 )T
kṙ2 (ϕ0 )k

Evident că v1 ⊥ v2 . Mai rămâne să determinăm v3 . Segmentul (O, E] intersecţia conului
ϕ = ϕ0 cu semiplanul θ = θ0 şi este parametrizat de r3 : (0, ρ0 ] → R3 , r3 (ρ) = r(ρ, ϕ0 , θ = θ0 ).

ṙρ (ρ, ϕ0 , θ0 ) = (cos θ0 cos ϕ0 , sin θ0 cos ϕ0 , sin ϕ0 )T


v3 = ṙ3 (ρ0 ) = ṙρ (ρ0 , ϕ0 , θ0 ) = (cos θ0 cos ϕ0 , sin θ0 cos ϕ0 , sin ϕ0 )T

Se verifică prin calcul direct că v3 ⊥ v1 şi v3 ⊥ v2 . Determinantul matricii de trecere de la baza
canonică Bc la baza ortonormată B′ = (v1 , v2 , v3 ) este:
¯ ¯
¯ − sin θ0 − cos θ0 sin ϕ0 cos θ0 cos ϕ0 ¯
¯ ¯
det(TBc B′ ) = det([v1 |v2 |v3 ]) = ¯¯ cos θ0 − sin θ0 sin ϕ0 sin θ0 cos ϕ0 ¯¯ = 1,
¯ 0 cos ϕ0 sin ϕ0 ¯

deci baza B′ este o bază dreaptă.

Problemă. Dacă coordonatele sferice sunt definite ca la analiză, adică ϕ este măsura unghiului
−−→
dintre OE şi Oz, ce puteţi spune despre baza construită ı̂n acelaşi mod, ţinând seama că ı̂n acest
caz ϕ ∈ [0, π] şi că ı̂n parametrizarea semicercului meridian ρ = ρ0 ,θ = θ0 , punctul mobil se
mişcă de la polul nord spre polul sud? Confirmaţi răspunsul dat prin argumente, efectuând şi
calcule.
Cursul 8, Algebră liniară °
c E. Petrişor, noiembrie 2007 13

8.2.3 Reperul observatorului. Transformări de vizualizare

Un obiect 3D discretizat este reprezentat de punctele Mi (xi , yi , zi ), i = 1, N , şi de segmente


(muchii) ı̂ntre diferite puncte, raportate la sistemul de coordonate al lumii reale xOyz. Centrul
geometric al norului de puncte este punctul C(X, Y, Z), unde:

mini=1,N (xi ) + maxi=1,N (xi )


X =
2
mini=1,N (yi ) + maxi=1,N (yi )
Y =
2
mini=1,N (zi ) + maxi=1,N (zi )
Z =
2

Avem două cazuri:


1. Centrul geometric al norului coincide sau este foarte apropiat de origine;
2. Centrul geometric C este suficient de departe de origine. În acest caz se efectuează o
translaţie a sistemului xOyz, cu originea ı̂n C.
Pentru unitatea prezentării presupunem cazul 1, cazul al doilea tratându-se similar dacă se
notează C tot cu O.
Pentru a vizualiza obiectul 3D prin proiecţie perspectivă pe un plan ce conţine ecranul se
parcurg următoarele etape:
• Se alege poziţia observatorului (a camerei de luat vederi) pe o sferă cu centrul ı̂n origine
şi de rază mai mare decât:

R = max{dist(Mi , O), i = 1, N }

Poziţia observatorului se dă ı̂n coordonate sferice5 E(ρ0 , ϕ0 , θ0 ), cu ρ0 >> R. θ0 indică cât
se roteşte observatorul ı̂n jurul obiectului, iar ϕ0 cât se ı̂nalţa sau coboară observatorul pe
meridianul de ecuaţii ρ = ρ0 , θ = θ0 . I se asociază observatorului un reper ortonormat stâng
RE = (E; (u1 , u2 , u3 ) (Fig. 8.12) unde baza (u1 , u2 , u3 ) = (v1 , v2 , −v3 ), v1 , v2 , v3 fiind vectorii
bazei ortonormate drepte (Fig.8.11) ce se asociază punctului E de pe sfera ρ = ρ0 .
Notăm cu Ex′ y ′ z ′ sistemul de axe asociat acestui reper (Fig. 8.13). u3 (deci axa Ez ′ )
−−→
are direcţia şi sensul vectorului de observare EO, adică observatorul priveşte spre originea
sistemului lumii reale (centrul geometric al corpului 3D). Din ochiul E al observatorului emană
câte o rază prin fiecare punct al obiectului.
−−→
• Perpendicular pe direcţia de observare EO, la distanţa d de observator, se plasează planul
ecranului π : z ′ = d.
• pentru a aplica proiecţia perspectivă de centru E punctelor corpului 3D, trebuie să aflăm
coordonatele punctelor Mi ı̂n reperul observatorului.
Transformările de coordonate din reperul lumii reale ı̂n reperul observatorului se numesc
transformări de vizualizare.
5
Pentru un utilizator este mai simplu să dea coordonatele ϕ0 şi θ0 ı̂n grade. Apoi se transformă gradele ı̂n
grade ∗ π
radiani: radiani = .
180
14 Cursul 8, Algebră liniară °
c E. Petrişor, noiembrie 2007

u2

u1
E
u3
O
y
x

Fig.8.12: Reperul stâng al observatorului.

Dacă punctul M aparţinând corpului 3D ce trebuie vizualizat are coorrdonatele (x, y, z) rel-
ativ la sistemul lumii reale, atunci coordonatele sale (x′ , y ′ , z ′ ) relativ la sistemul observatorului
se află din relaţia lui Chasles:
−−→ −−→ −−→ −−→ −−→
EM = EO + OM = −OE + OM
−−→ −−→
Vectorul OM = xe1 + ye2 + ze3 (e1 , e2 , e3 fiind versorii axelor Ox, Oy, Oz), iar OE = xE e1 +
yE e2 + zE e3 , unde coordonatele carteziene (xE , yE , zE ) ale lui E se deduc din cele sferice
−−→
conform relaţiei (8.10). Astfel vectorul EM are relativ la baza (e1 , e2 , e3 ) exprimarea:
−−→
EM = (x − xE )e1 + (y − yE )e2 + (z − zE )e3

Remarcăm că practic (x − xE , y − yE , z − zE ) sunt coordonatele punctului M relativ la sistemul


de coordonate obţinut printr-o translaţie a sistemului xOyz cu originea ı̂n E (vezi relaţiile 8.1).
−−→
Pentru a fla coordonatele vectorului EM ı̂n baza ortonormată B′ = (u1 , u2 , u3 ) ai cărei
vectori dau direcţiile axelor observatorului exploatăm faptul că:
−−→ −−→ −−→
EM B′ = TB′ Bc EM Bc = TBTc B′ EM Bc

Matricea de trecere de la baza canonică la baza B′ este TBc B′ = [u1 |u2 |u3 ], deci:
   
x′ − sin θ0 cos θ0 0 x − xE
−−→  ′  
EM = y = − cos θ0 sin φ0 − sin θ0 sin φ0 cos φ0   y − yE 

z − cos θ0 cos φ0 − sin θ0 cos φ0 − sin φ0 z − zE
| {z }
TBTc B′
Cursul 8, Algebră liniară °
c E. Petrişor, noiembrie 2007 15

y′
z
x′
E

z′
O
y
x

Fig.8.13: Poziţia relativă a sistemului de axe a observatorului şi a sistemului lumii reale.

Având relaţiile de transformare a coordonatelor unui punct din sistemul lumii reale ı̂n sistemul
observatorului se poate efectua proiecţia perspectivă de centru E pe planul z ′ = d (Fig.8.14):

x′ y ′
PE (x′ , y ′ , z ′ ) = ( ′ d, ′ d)
z z

y′ z′ = d > 0
M′

z′
M

E x′

Fig.8.14: Proiecţia perspectivă a punctelor din sistemul de coordonate al observatorului, E.


16 Cursul 8, Algebră liniară °
c E. Petrişor, noiembrie 2007

Probleme
Punctele din problemele 1-2 sunt raportate la sistemul din figura (8.14).

1. Să se arate că dacă A, B, C sunt trei puncte dintr-un plan perpendicular pe Ez ′ , α : z ′ =
a > 0 şi A′ , B ′ , C ′ sunt proiecţiile centrale de centru E pe planul π : z ′ = d, atunci △A′ B ′ C ′
este asemenea cu △ABC.

2. Cum construiţi reperul observatorului când poziţia acestuia relativ la sistemul lumii reale se
dă ı̂n coordonate carteziene, nu sferice?

3. Fie P, Q două puncte situate ”ı̂n spatele” observatorului E, adică P (0, 0, −c), Q(0, b, −c),
b > 0. Deduceţi poziţia segmentului P ′ Q′ , unde P ′ , Q′ este proiecţia de centru E a lui P, Q pe
planul π (desenaţi).

4. Deduceţi expresia analitică a proiecţiei perspective când sistemul de coordonate ortogonale


ı̂n E3 este drept şi observatorul nu este plasat ı̂n origine ci pe axa z, E(0, 0, d), d > 0. Proiecţia
perspectivă se face pe planul xOy. Desenaţi!

S-ar putea să vă placă și