Documente Academic
Documente Profesional
Documente Cultură
3 4
Transformarea fereastr - poart Transformarea fereastr - poart
S considerm pentru nceput o aceeai orientare a axelor SCL i SCF.
Fie F(xf ,yf) un punct din fereastr, i fie P(xp ,yp) punctul corespunztor
din poart.
5 6
x p x p min x f x f min
x p max x p min x f max x f min
y p y p min y f y f min
Xp
y p max y p min y f max y f min
7 8
Transformarea fereastr - poart Transformarea fereastr - poart
9 10
11 12
Transformarea fereastra-poarta Transformarea fereastra-poarta
Cazuri speciale Cazuri speciale
Direcia axei Y a ferestrei nu corespunde cu cea a
porii (ecran de afiare)
13 14
15 16
Transformarea fereastra-poarta Transformarea fereastra-poarta
Cazuri speciale Cazuri speciale
Imagine centrata in poarta Imagine centrata in poarta
17 18
Transformarea fereastra-poarta
Cazuri speciale
Transformarea fereastra-poarta
In cazul ecranului cu axa y in jos: Pentru a realiza transformarea putei utiliza funcia
setviewport(xpmin , ypmin , xpmax , ypmax , decup) , originea
sistemului de coordonate al ecranului este considerat a
fi punctul (x pmin , y pmin ).
n consecin, din formulele precedente se va scdea x
pmin din prima i y pmin din a doua.
19 20
Exemplu Exemplu
Fie fereastra din figura urmtoare: Scalarea pe axa Ox fiind de 2 ori mai mare dect cea de pe axa Oy,
Yf (1,1)
orice desen definit n fereastr va fi deformat (lit) la nivelul porii.
x f min 0 y f min 0 Dac un astfel de efect este neconvenabil, atunci va trebui ales ca
factor de scalare a transformrii:
x f max 1 y f max 1
s min s x , s y
Pentru poart se consider: Procednd astfel n exemplul ales, vom constata c desenul din
fereastr este afiat n jumtatea stng a porii.
x p min 0 y p min 0 Of Xf Yf
(400,200)
x p max 400 y p max 200
400 200
Rezult: sx 400 sy 200
1 1
t x 0 sx 0 0 ty 0 sy 0 0
21 Of Xf 22
Exemplu Exemplu
Pentru ca desenul s apar centrat n poart, este necesar s se n general, translarea suplimentar se calculeaz astfel:
efectueze o translare suplimentara, de factor 100 n cazul de fa.
t x x p max x p min s x x f max x f min / 2
t y y p max y p min s y y f max y f min / 2
Yf
(400,200)
Invers, dac:
x f min y f min 0
x p min 0 i / sau y p min 0
atunci:
Intrebari ?
t x x p min
t y y p min
25 26