Sunteți pe pagina 1din 30

Curs 1 partial + 2+3

1
Elemente de grafic pe calculator


Cap. 1. Transformri grafice bidimensionale

n procesul de sintez a imaginilor se folosesc frecvent diverse transformri.
Transformrile grafice permit reprezentarea desenelor la scara dorit, efectuarea operaiilor
de detaliere i micorare asupra imaginilor, realizarea animaiei, etc.
Transformrile grafice pot fi privite din dou puncte de vedere, complementare
unul altuia. De exemplu, sistemul de ecuaii care descrie transformarea coordonatelor unui
punct ) , ( y x P :

y y
d x x
=
+ =
, (1.1)

poate fi interpretat n dou moduri:
a) Punctul din plan ) , ( y x P a fost translatat spre dreapta cu distana d (fig. 1.1a);
b) Axa y a sistemului de coordonate cartezian 2D a fost translat cu distana d spre
stnga (fig. 1.1b).


Figura 1.1

Prin urmare, exist dou interpretri ale unei transformri grafice a unui punct:
a) se efectueaz transformri asupra coordonatelor unui punct, pstrnd
acelai sistem de coordonate;
b) se efectueaz transformri asupra sistemului de coordonate.
Prima interpretare corespunde transformrii unui punct raportat la un sistem de coordonate
fix i se formuleaz matematic ca o transformare geometric aplicat punctului. n acest
caz, ) , ( y x sunt coordonatele punctului care rezult din transformarea lui P . Cea de-a
doua interpretare corespunde unei transformri a sistemului de coordonate, ) , ( y x
reprezentnd coordonatele punctului P n noul sistem de coordonate. Aceast interpretare
este utilizat mai ales n exprimarea operaiilor de vizualizare a obiectelor 2D i 3D care,
de obicei, sunt definite ntr-un sistem de coordonate propriu aplicaiei grafice, n timp ce
reprezentarea lor pe suprafaa de afiare a unui echipament grafic este raportat la un
sistem de coordonate propriu suprafeei.


) , ( y x P ) , ( y x P
y
x
O
d
) , ( y x P
y
x
O
d
y
O
a) b)
Curs 1 partial + 2+3
2
1.1 Transformri geometrice

Se consider un sistem de coordonate carteziene n plan. Orice obiect poate fi
descris printr-un set de atribute geometrice (coordonate), atribute topologice i atribute de
aspect. De exemplu, pentru un segment de dreapt este suficient s se specifice
coordonatele capetelor sale (atributele geometrice), ( )
1 1
, y x , ( )
2 2
, y x , i atributele de
aspect (culoarea, tipul liniei etc.). Pentru un desen mai complicat, cum ar fi planul unei
case, nu este suficient cunoaterea punctelor caracteristice trebuind s se specifice i
legturile existente ntre punctele respective, adic atributele topologice.
Transformarea geometric a unui obiect const n transformarea individual a
fiecrui punct din reprezentarea obiectului. De exemplu, pentru reducerea la o anumit
scar a planului casei, se aplic aceeai transformare tuturor punctelor prin care este
specificat, atributele topologice i cele de aspect nefiind afectate de transformare. Este
deci suficient s se cunoasc formulrile matematice ale transformrilor geometrice pentru
un punct din plan.

1.1.1 Translaia
Translaia este transformarea prin care un obiect este deplasat din poziia sa, cu o
distan dat, dup o direcie dat. Matematic, translaia n plan este specificat printr-un
vector:
j t i t
y x

+ = v . (1.2)

Dac ( ) y x, sunt coordonatele unui punct P al unui obiect atunci, prin translaia obiectului
cu o distan egal cu mrimea vectorului v

, n direcia vectorului v

, punctul P se
transform n ) , ( y x P (fig. 1.2), unde x i y sunt definite astfel:


y
x
t y y
t x x
+ =
+ =
'
'
. (1.3)

Figura 1.2


Exemplu:
j i

+ = 2 v , ) 5 , 5 ( = P . Prin translaia lui P cu vectorul v

se va obine punctul
) 6 , 7 ( = P .
Observaie. Prin translaie obiectul este deplasat fr s se modifice forma, dimensiunea i
orientarea.



y
( ) y x P ,
x
t
) , ( y x P
x
y
t
O
v


Curs 1 partial + 2+3
3
1.1.2 Scalarea
Scalarea este transformare prin care un obiect este mrit sau micorat. n cazul 2D
scalarea este specificat prin dou numere, numite factorul de scalare pe axa x , respectiv
factorul de scalare pe axa y . Un factor de scalare supraunitar specific o mrire, iar unul
subunitar o micorare.

a) Scalarea fa de origine
Scalarea unui punct ) , ( y x P cu factorii
x
s ,
y
s fa de origine nseamn scalarea
vectorului poziie OP , care unete originea cu punctul P . Vectorul rezultat din scalare,
P O are componentele x , y date de:


y s y
x s x
y
x
=
=
'
'
(1.4)

Dac
y x
s s = , atunci scalarea este uniform (nu produce deformarea obiectului
transformat). n caz contrar, scalarea este neuniform (obiectul este deformat).

Exemplu: Fie ptratul cu vrfurile ) 1 , 1 ( , ) 1 , 2 ( , ) 2 , 2 ( , ) 2 , 1 ( (fig. 1.3a). Prin scalarea fa
de origine cu factorii 2 =
x
s , 3 =
y
s se va obine dreptunghiul cu vrfurile: ) 3 , 2 ( , ) 3 , 4 ( ,
) 6 , 4 ( , ) 6 , 2 ( (fig. 1.3b).


Figura 1.3


b) Scalarea fa de un punct din plan

Se consider ) , (
f f
y x F punctul din plan fa de care se face scalarea unui punct
) , ( y x P . Punctul F se numete punct fix al transformrii, deoarece nu se modific prin
aplicarea transformrii. Scalarea punctului P fa de F cu factorii de scalare
x
s ,
y
s
nseamn scalarea vectorului FP. Componentele vectorului scalat P F sunt:


( )
( )
f y f
f x f
y y s y y
x x s x x
=
=
'
'
.
2,2
1,1
x
y
a)
O
2,3
4,6
x O
y
1,1
3,4
x
O
y
2,1
1,2
4,3
2,6
3,1
1,4
b)
c)
Curs 1 partial + 2+3
4

Din relaiile anterioare rezult:


y f f y
x f f x
s y y s y y
s x x s x x
+ =
+ =
'
'
. (1.5)

Exemplu: Prin scalarea ptratului din fig.1.3a cu aceiai factori de scalare 2 =
x
s ,, 3 =
y
s ,
fa de punctul ) 1 , 1 ( , se obine dreptunghiul din figura 1.3c.


1.1.3 Rotaia

a) Rotaia fa de origine

Rotaia este o transformare specificat printr-un unghi. Dac unghiul este pozitiv,
atunci rotaia este efectuat n sensul trigonometric (invers fa de sensul de rotaie al
acelor de ceas). Dac dorim s efectum rotaia n sens invers trigonometric, unghiul va fi
negativ. Coordonatele punctului ) , ( y x P , obinut prin rotaia cu a punctului P n jurul
originii se obin uor utiliznd legtura dintre coordonatele carteziene i cele polare ale lui
P , respectiv P (fig. 1.4a).


Figura 1.4


Pentru punctul P putem scrie:

sin
cos
r y
r x
=
=
, (1.6)

iar pentru punctul P :


) ( sin
) ( cos


+ =
+ =
r y
r x
, (1.7)

) , ( y x P
) , ( y x P


y
x
O
) , ( y x P
) , ( y x P


y
x
O
r
r
) , (
f f
y x F
a) b)
Curs 1 partial + 2+3
5
unde r reprezint lungimea vectorului de poziie OP , iar unghiul su cu orizontala (fig.
1.4a). nlocuind ) cos( + i ) sin( + cu expresiile lor trigonometrice i innd cont de
relaiile (1.6) se obine:


. cos sin
sin cos


y x y
y x x
+ =
=
(1.8)

b) Rotaia fa de un punct oarecare din plan

Fie ) , ( y x P punctul din plan care se rotete n jurul unui punct ) , (
f f
y x F . La fel
ca n cazul scalrii, punctul F nu este afectat de transformare. Coordonatele punctului P ,
rezultat din rotaia punctului P n jurul lui F cu un unghi , se obin din expresiile care
calculeaz componentele vectorului P F (fig. 1.4b):




cos ) ( sin ) (
sin ) ( cos ) (
f f f
f f f
y y x x y y
y y x x x x
+ =
=
. (1.9)

De fapt relaiile (1.9) pot fi scrise direct din relaiile (1.8) dup ce schimbm originea
sistemului n punctul F , printr-o translaie cu
f
x , respectiv
f
y . Din relaiile (1.9) rezult:




cos sin cos sin
sin cos sin cos
f f f
f f f
y x y y x y
y x x y x x
+ + =
+ + =
(1.10)


1.1.4 Formularea matricial a transformrilor

n cele mai multe cazuri, transformarea care trebuie aplicat unui obiect la un
moment dat este compus din mai multe transformri elementare. n aceste cazuri, formula
oricrei transformri compuse se poate obine uor folosind expresiile matriciale ale
transformrilor elementare. Coordonatele punctelor se pot
reprezenta prin vectori linie ] , [ y x P = sau vectori coloan | |
T T
y x P = . Notm cu M
matricea de transformare rezultat. Dac se folosesc vectori linie, atunci se efectueaz
nmulire la dreapta cu matricea de transformare M , iar pentru vectori coloan nmulirea
se face la stnga cu
T
M .
Observaie: n OpenGL se folosesc vectori coloan.
n continuare se utilizeaz vectori coloan. n cazul n care trebuie efectuate mai multe
transformri nseamn c se efectueaz compunerea matricelor de transformare.

Translaia

Translaia nu poate fi exprimat ca un produs matricial. Relaiile (1.3) pot fi scrise
ca o adunare de vectori, n coordonate carteziene neexistnd o matrice de transformare
pentru translaie.
P M P + = , unde vectorul M este
(

=
y
x
t
t
M . (1.11)
Curs 1 partial + 2+3
6

Scalarea fa de origine

Relaiile (1.4) pot fi scrise matricial astfel:


(

=
(

y
x
s
s
y
x
y
x
0
0

S fiind matricea transformrii de scalare.

Rotaia fa de origine

Relaiile (1.8) scrise matricial devin:


(


=
(

y
x
y
x


cos sin
sin cos
P R P = , (1.13)

unde prin R s-a notat matricea transformrii de rotaie.
Observaie: Pentru vectori linie relaia (1.13) devine:

| | | |
(

=


cos sin
sin cos
, , y x y x . (1.14)

Coordonate omogene

Deoarece pentru translaie, n coordonate carteziene, nu exist o matrice de
transformare, pentru a uniformiza notaiile se folosesc coordonate omogene. Acest sistem
de coordonate permite reprezentarea tuturor transformrilor ca produs de matrice. Unui
punct 2D din plan, ) , ( y x , i corespunde, n coordonate omogene un triplet ) , , ( w y x
w w
, n
care:

w
y
y
w
x
x
w
w
=
=
. (1.15)

Observaie: Dac 0 = w , atunci pentru | | 0 , , b a , punctul se consider la infinit pe dreapta:

0 = x b y a

Exemple:
1) [1,0,0] punctul de la infinit pe axa Ox pozitiv;
2) [1,1,0] punctul de la infinit n direcia [1,1].
3) Punctul ) 1 , 2 ( P n coordonate plane carteziene, devine n coordonate omogene (2,1,1)
sau (4,2,2), etc.
n grafic se utilizeaz 1 = w , ceea ce nseamn c:

) 1 , , ( ) , ( ene coord.omog eziene coord.cart y x P y x P .

Curs 1 partial + 2+3
7
Dac n urma unor transformri se obine 1 w , se efectueaz mprirea cu w. n general,
transformrile geometrice primitive conserv valoarea lui w i deci dac se alege 1 = w
mprirea nu mai este necesar.
Cele trei transformri elementare examinate anterior, ntr-un sistem omogen de
coordonate se exprim astfel:


Translaia
Relaiile (1.11) devin:


(
(
(

(
(
(

=
(
(
(

1 1 0 0
1 0
0 1
1
y
x
t
t
y
x
y
x
P T P = , (1.18)
unde

(
(
(

=
1
y
x
P ,
(
(
(

=
1
y
x
P ,
(
(
(

=
1 0 0
1 0
0 1
y
x
t
t
T , (1.19)

T fiind matricea de translaie.

Scalarea fa de origine
Din relaiile (1.12) rezult:


(
(
(

(
(
(

=
(
(
(

1 1 0 0
0 0
0 0
1
y
x
s
s
y
x
y
x
P S P = ' , (1.20)

matricea de scalare fa de origine fiind:


(
(
(

=
1 0 0
0 0
0 0
y
x
s
s
S . (1.21)

Rotaia fa de origine
Relaiile (1.13) implic:


(
(
(

(
(
(


=
(
(
(

1 1 0 0
0 cos sin
0 sin cos
1
y
x
y
x


P R P = ' , (1.22)

matricea transformrii de rotaie fa de origine fiind:

Curs 1 partial + 2+3
8

(
(
(


=
1 0 0
0 cos sin
0 sin cos
) (

R . (1.23)

Observaie: La aplicarea a dou transformri asupra unui punct trebuie avut n vedere c
produsul matricial nu e comutativ. Excepie fac transformrile de acelai tip.
Expresiile matematice ale scalrii i rotaiei fa de un punct oarecare se pot obine
prin compunerea urmtoarelor transformri:
1. translaia prin care punctul fix al transformrii ajunge n origine;
2. scalarea/rotaia fa de origine;
3. translaia invers celei de la punctul 1.
Considerm ) , (
f f
y x F punctul fix al transformrii, unghiul de rotaie i
x
s , respectiv
y
s factorii de scalare.

Scalarea fa de un punct fix
Conform celor afirmate anterior, coordonatele punctului P sunt date de:



P y x T s s S y x T P
f f y x f f
= ) , ( ) , ( ) , (
, (1.24)

(
(
(

(
(
(

(
(
(

(
(
(

=
(
(
(

1 1 0 0
1 0
0 1
1 0 0
0 0
0 0
1 0 0
1 0
0 1
1
y
x
y
x
s
s
y
x
y
x
f
f
y
x
f
f
. (1.25)

n relaia (1.24) ) , (
f f
y x T constituie transformarea de translaie prin care punctul fix al
transformrii este adus n origine.
Observaie:

=
(
(
(

(
(
(

(
(
(

=
(
(
(

1 1 0 0
0
0
1 0 0
1 0
0 1
1
y
x
y s s
x s s
y
x
y
x
f y y
f x x
f
f


,
1 1 1 0 0
0
0
(
(
(

+
+
=
(
(
(

(
(
(

+
+
=
f y f y
f x f x
f f y
y
f f x x
y s y s y
x s x s x
y
x
y y s s
x x s s

adic am obinut relaiile (1.5).

Rotaia fa de un punct fix
Coordonatele punctului P le obinem din:


P y x T R y x T P
f f f f
= ) , ( ) ( ) , (
, (1.26)


(
(
(

(
(
(

(
(
(

(
(
(

=
(
(
(

1 1 0 0
1 0
0 1
1 0 0
0 cos sin
0 sin cos
1 0 0
1 0
0 1
1
y
x
y
x
y
x
y
x
f
f
f
f


. (1.27)

Curs 1 partial + 2+3
9
1.1.5 Transformri geometrice inverse

Fiecare dintre transformrile geometrice elementare are o invers, adic o
transformare care exprim operaia opus celei corespunztoare transformrii.
Se pot verifica uor urmtoarele relaii:

| | ) , ( ) , (
1
y x y x
t t T t t T =

, (1.28)
| | ) 1 , 1 ( ) , (
1
y x y x
s s S s s S =

, (1.29)

| |
1
( ) ( ) R R

= . (1.30)

De exemplu, pentru relaia (1.28) avem:

(
(
(

=
(
(
(

(
(
(

=
1 0 0
0 1 0
0 0 1
1 0 0
1 0
0 1
1 0 0
1 0
0 1
) , ( ) , (
y
x
y
x
y x y x
t
t
t
t
t t T t t T q.e.d.


1.1.6 Alte transformri simple

Oglindirea (reflexia)

Fa de axa x (figura 1.5a):

Figura 1.5

y
x
O
a)
y
x
O
b)
y
x
O
c)
Curs 1 partial + 2+3
10

y y
x x
=
=
,
(
(
(

(
(
(

=
(
(
(

1 1 0 0
0 1 0
0 0 1
1
y
x
y
x
,

deci matricea de oglindire fa de axa x ,
x
O , este:


(
(
(

=
1 0 0
0 1 0
0 0 1
x
O . (1.31)

Fa de axa y (figura 1.5b):


y y
x x
=
=
,
(
(
(

(
(
(

=
(
(
(

1 1 0 0
0 1 0
0 0 1
1
y
x
y
x
,

deci matricea de oglindire fa de axa y ,
y
O , este:


(
(
(

=
1 0 0
0 1 0
0 0 1
y
O (1.32)


Fa de origine (figura 1.5c):


y y
x x
=
=
,
(
(
(

(
(
(

=
(
(
(

1 1 0 0
0 1 0
0 0 1
1
y
x
y
x
,

rezult c matricea de oglindire fa de origine,
o
O , este:


(
(
(

=
1 0 0
0 1 0
0 0 1
o
O (1.33)









Curs 1 partial + 2+3
11
Oglindirea fa de o dreapt oarecare

Fie dreapta b ax y + = (fig. 1.6). Se poate exprima oglindirea fa de dreapta b ax y + = ,
ca o transformare compus din urmtoarele transformri elementare:
1. O translaie astfel nct dreapta respectiv s treac prin origine ) , 0 ( b T ;
2. O rotaie a dreptei pentru a o alinia cu una din axele de coordonate, de exemplu cu
axa Ox , )) arctan( ( a R ;
3. Oglindirea fa de axa pe care a fost suprapus, n cazul nostru Ox ;
4. Rotaie invers celei de la punctul 2, )) (arctan(a R ;
5. Translaie invers celei de la punctul 1, ) , 0 ( b T .
Prin urmare, matricea transformrii este:

) , ( )) arctan( ( )) (arctan( ) , ( b a T a R O a R b a T M
x
= . (1.34)

De exemplu, coordonatele punctului ) , ( y x P din figura 1.6, care este simetricul lui
) , ( y x P fa de dreapta b ax y + = , sunt date de P M P = .


Fig. 1.6 Oglindirea fa de o dreapt oarecare


Observaii:
1) Ordinea de acionare a matricelor care compun transformarea este de la dreapta la
stnga n cazul vectorilor coloan (cazul considerat) i de la stnga la dreapta n cazul
vectorilor linie.
2) Pentru dou transformri de acelai tip avem:


1 2 2 1
T T T T = ,

1 2 2 1
R R R R = , (1.35)

1 2 2 1
S S S S = .

Dac
y x
s s = , atunci are loc S R R S = .
3) Pentru mai multe transformri n secven, ordinea este, de regul, urmtoarea:
scalarea se aplic naintea rotaiei.



) , ( y x P
) , ( y x P
b
a b
O
x
y
Curs 1 partial + 2+3
12
1.2 Transformri ale sistemului de coordonate

Considerm dou sisteme de coordonate n plan, xOy i y O x . Unui punct fix din
plan, P , i corespund dou reprezentri: ) , ( y x n sistemul xOy i ) , ( y x n sistemul
y O x . Sistemul y O x se poate obine prin transformarea sistemului xOy , transformare
ce se poate defini prin relaia dintre cele dou reprezentri ale punctului P .

1.2.1 Translaia

Considerm c sistemul y O x s-a obinut prin translaia sistemului xOy cu
vectorul de translaie (fig. 1.7a):

j t i t
y x

+ = v .


Fig. 1.7


Relaia dintre coordonatele lui P n cele dou sisteme este:


y
x
t y y
t x x
=
=
P T P
C
= , (1.36)

cu matricea de translaie a transformrii de coordonate:


(
(
(

=
1 0 0
1 0
0 1
) , (
y
x
y x C
t
t
t t T (1.37)

Observaie. Legtura dintre matricea transformrii sistemului de coordonate
C
T i
matricea transformrii geometrice T (n ideea n care transformrile nu se aplic
sistemului de coordonate ci se aplic punctului P ) este:

) , ( y x P
) , ( y x P
y y
x
x O
O
x
t
x
t
v
a)
r


Curs 1 partial + 2+3
13
1
)] , ( [ ) , ( ) , (

= =
y x y x y x C
t t T t t T t t T , (1.38)

deci matricea transformrii de coordonate este inversa matricei transformrii geometrice.

1.2.2 Rotaia

Fie sistemul y O x obinut prin rotaia axelor lui xOy cu unghiul fa de axa x
(fig. 1.7b).
Fig. 1.7

Pentru punctul P n sistemul xOy coordonatele sunt:

sin
cos
r y
r x
=
=
, (1.39)

iar n sistemul y O x :


) sin(
) cos(


=
=
r y
r x
. (1.40)

Din relaiile (1.39) i (1.40) rezult:




cos cos sin cos cos sin
sin cos sin sin cos cos
y x r r y
y x r r x
+ = =
+ = + =
. (1.41)

Notnd cu ) (
C
R matricea transformrii n cazul rotaiei unui sistem de coordonate avem:


(
(
(

=
1 0 0
0 cos sin
0 sin cos
) (

C
R . (1.42)

Se observ c ) (
C
R este inversa matricei transformrii geometrice de rotaie a punctului
P fa de originea vechiului sistem:

y
y
x
x
O O ,
b)
) , ( y x P
) , ( y x P

r



Curs 1 partial + 2+3
14
| |
1
) ( ) ( ) (

= = R R R
C
(1.43)

1.2.3 Scalarea

Considerm c formm un nou sistem de coordonate cu aceeai origine i orientare
a axelor, dar cu alte uniti de msur de-a lungul axelor x i y (fig. 1.8).



Dac noile uniti de msur se obin prin scalarea vechilor uniti cu factorii
x
s , respectiv
y
s , atunci relaia dintre coordonatele aceluiai punct n cele dou sisteme este:

,
1
,
1
y
x
s
y y
s
x x
=
=
(1.44)
iar matricea transformrii de coordonate:


(
(
(
(

=
1 0 0
0
1
0
0 0
1
) , (
y
x
y x C
s
s
s s S . (1.45)

Se observ c
| |
1
) , (
1
,
1
) , (

= |
.
|

\
|
=
y x
y x
y x C
s s S
s s
S s s S , (1.46)

unde prin S am notat matricea transformrii de scalare geometric (a coordonatelor
punctului). n cazul din figura 1.8 am considerat 100 = =
y x
s s .








x x ,
y y ,
O O ,

) 2 , 1 ( P
) 200 , 100 ( P
Fig. 1.8
Curs 1 partial + 2+3
15
1.3 Transformarea de instaniere

Obiectele se definesc n mod obinuit ntr-un sistem de coordonate propriu (local),
numit sistem de coordonate obiect. Pentru a reprezenta obiectul respectiv ntr-un desen
asupra lui trebuie efectuat o transformare. Operaia de trecere din sistemul local n alt
spaiu de desenare (care are alt origine i alte coordonate), se numete instaniere, iar
transformarea respectiv, transformare de instaniere.
Reprezentarea n diverse poziii, dimensiuni i orientri n noul spaiu se numete
instan a obiectului. Transformarea de instaniere este compus, n general, din scalare,
rotaie i translaie, dar pot fi necesare i alte transformri (oglindire, etc.).
Observaie: Translaia este ultima transformare care se aplic.
OpenGL folosete aceste transformri n plasarea obiectelor n scene 3D.


1.4 Transformarea de vizualizare 2D

Transformarea dintr-un sistem 2D oarecare, numit sistem al lumii reale (WCS
World Coordinate System), n spaiul de afiare dispozitiv (sistem de coordonate
dispozitiv, sistem de coordonate fizice), care este propriu fiecrui dispozitiv, se numete
transformare de vizualizare.
Obs: Sistemul WCS se mai numete SC logice sau SC universale sau SC utilizator.
Cele dou sisteme 2D se specific prin dou dreptunghiuri, transformarea de
vizualizare avnd ca efect transformarea fiecrui punct din dreptunghiul 2D din SC logice
n dreptunghiul din SC dispozitiv (spaiul de afiare).


Fig.1

Transformarea de vizualizare 2D se mai numete i transformarea fereastr-poart.

a) Considerm mai nti aceeai orientare a axelor celor dou SC. Fie ) , (
f f
y x F
un punct din fereastr i ) , (
p p
y x P punctul corespunztor din poart. Transformarea
fereastr-poart este definit astfel nct poziia relativ a punctului P n poart s fie
aceeai cu poziia relativ a punctului F n fereastr (fig. 2).

(400,400)
(100,100)
1
-1
Fereastr
(n WCS)
SC logice SC dispozitiv
Poarta de afiare
(n spaiul de afiare)
Curs 1 partial + 2+3
16

Fig. 2 Transformarea fereastr-poart


Matematic, aceast condiie se formuleaz astfel:


p pm pM pm
f fm fM fm
x x x x
x x x x

=

, (1)

p pm pM pm
f fm fM fm
y y y y
y y y y

=

, (2)

unde: ) , (
fm fm
y x , ) , (
fM fM
y x - reprezint colurile stnga-jos (minim), respectiv
dreapta-sus (maxim) ale ferestrei, iar ) , (
pm pm
y x , ) , (
pM pM
y x colurile corespunztore
ale porii.
Notm cu:

fm fM
pm pM
f
p
x
x x
x x
x
x
s

= , (3)

fm fM
pm pM
f
p
y
y y
y y
y
y
s

= . (4)

Atunci relaiile (1) i (2) devin:


y fm pm y f p
x fm pm x f p
s y y s y y
s x x s x x
+ =
+ =
. (5)

Notnd cu:

y fm pm y
x fm pm x
s y y t
s x x t
=
=
, (6)
putem scrie:

y y f p
x x f p
t s y y
t s x x
+ =
+ =
. (7)

x
pm pm
y x ,
pM pM
y x ,
fM fM
y x ,
) , (
p p
y x P ) , (
f f
y x F
p
y
p
x
y
O
SC - WCS SC - fizice
O
fm fm
y x ,
Curs 1 partial + 2+3
17
Relaiile (5) i (7) reprezint formulele de transformare fereastr-poart cnd sistemele
de coordonate au aceeai orientare a axelor.
Exprimm formulele de transformare fereastr-poart, matriceal, n coordonate
omogene. Putem scrie:


v
P T S F M F = = (8)


1 0 0 0
0 1 0 0
1 0 0 1 0 0 1 1
p f
x x
p y y f
T S
x x
t s
y t s y
( ( ( (
( ( ( (
=
( ( ( (
( ( ( (


, (9)

i deci matricea transformrii de vizualizare 2D este:


(
(
(

=
1 0 0
0
0
v y y
x x
t s
t s
M . (10)

Observaie: nti se realizeaz scalarea i apoi translaia T S S T .

Cazuri particulare
1) Cazul n care nu exist translaie, 0 = =
y x
t t ( 0 =
fm
x , 0 =
fm
y , 0 =
pm
x , 0 =
pm
y )
(fig. 3).

Fig. 3

2) Cazul
pm x
x t = ,
pm y
y t = (
0 =
fm
x ,
0 =
fm
y ) (fig. 4)

Fig. 4
y
O
F
Fereastr
P
Poart (vizor)
x
p
y
p
x
O
y
O
F
Fereastr
P
Poart (vizor)
x
p
y
p
x
O
pm pm
y x ,
Curs 1 partial + 2+3
18
b) Cazul n care sistemul de coordonate al ecranului are originea n colul
stnga-sus (axa y este n jos). n acest caz aplicnd formulele (7) desenul definit n
fereastr va fi rsturnat n poart (fig. 5).

Fig. 5

Pentru ca desenul s nu fie rsturnat n poart trebuie s avem situaia din fig. 6.

Fig. 6

Prin urmare, coordonata
p
y trebuie s se modifice astfel:

y fm pm y f pm pM y y f pm pM p
s y y s y y y t s y y y y + + = + + = ) ( .

n concluzie, pentru ecran vom avea:

y fm y f pM p
x x f p
s y s y y y
t s x x
+ =
+ =
(11)

Observaie: Cnd fereastra i poarta nu sunt asemenea are loc o deformare a obiectelor
afiate n poart. n unele aplicaii se dorete deformarea, n altele nu. Dac nu se dorete
deformarea se calculeaz
x
s i
y
s i se alege valoarea minim, astfel nct scalarea s fie
uniform.
) , min(
y x
s s s = . (12)

n acest caz zona definit de fereastr ocup zona din stnga a porii (fig. 7b) sau zona de
jos a porii (fig. 7c).
pm
y
y
x
F
P
p
y
O
O
pM
y
p
x
pm
y
y
x
F
P
p
y
O
O
pM
y
p
x
Curs 1 partial + 2+3
19

Fig. 7

Dac dorim ca imaginea s apar centrat n poart, putem avea cazurile
(considernd aceeai orientare a axelor) din fig. 8 sau fig. 9:

Fig. 8

Fig. 9


n aceste cazuri relaiile de transformare fereastr-poart devin:

2
) (
2
) (
y fm fM pm pM
y y f p
x fm fM pm pM
x x f p
s y y y y
t s y y
s x x x x
t s x x

+ + =

+ + =
(13)

O
F
P
P
x y
s s <
c)
y
p
y
p
y
O O
x
p
x
p
x
x y
s s >
b) a)
pm pm
y x ,
y
x
F
P
Poart Fereastr
x fm fM
s x x ) (
p
x
p
y
O O
pM pM
y x ,
fm fm
y x ,
fM fM
y x ,
pm pm
y x ,
fm fm
y x ,
y
F

P
Poart
pM pM
y x ,
Fereastr
y fm fM
s y y ) (
p
y
x
p
x
O O
fM fM
y x ,
Curs 1 partial + 2+3
20
n cazul ecranului, axa y fiind n jos (fig.10), rezult:

Fig. 10


( )
y y f pm pM p
x x f p
t s y y y y
t s x x
+ + =
+ =
(14)
unde
.
2
) (
2
) (
y fm fM pm pM
y fm pm y
x fm fM pm pM
x fm pm x
s y y y y
s y y t
s x x x x
s x x t

+ =

+ =
(15)

Observaii:
1) Dac se folosete funcia set vi ewpor t ( x
pmi n
, y
pmi n
, x
pmax
, y
pmax
,
decup) , originea sistemului de coordonate al ecranului este considerat a fi punctul (x
pmin
,
y
pmin
). n consecin, din formulele (14) se va scdea x
pmin
din prima i y
pmin
din a doua.
2) n cazul ecranului se pot folosi formulele (5) i (13), care sunt determinate
pentru aceeai orientare a axelor, i apoi se efectueaz o rotaie cu pentru a nu obine
imaginea rsturnat.


fm fm
y x ,
y
O
F P
p
y
O
x
p
x
pm pm
y x ,
pM pM
y x ,
fM fM
y x ,
Curs 1 partial + 2+3
21
Cap 2. Transformri tridimensionale (3D)

2.1 Transformri geometrice

Transformrile geometrice 3D cuprind translaia, scalarea, rotaia, oglindirea,
forfecarea i (n plus fa de 2D) proiecia obiectelor 3D.
n mod analog transformrilor 2D, care se reprezint n coordonate omogene prin matrice
3 3 , transformrile 3D pot fi reprezentate prin matrice 4 4 .

coordonate carteziene coordonate omogene
( ) z y x , , ( w z y x
w w w
, , , )

w parametru real i
w
x
x
w
= ,
w
y
y
w
= ,
w
z
z
w
=

Considernd un sistem de referin orientat dreapta
( ) k j i

= , i vectori coloan, matricea de transformare, n
forma general, este de forma urmtoare:

(
(
(
(
(
(


=
s n m l
r i h g
q f e d
p c b a
M
|
|
|
|


Matricea poate fi mprit n blocuri astfel:
(
(
(




=
1 1 | 3 1
1 3 | 3 3
M

- 3 3 include transformrile de scalare, oglindire, forfecare, rotaie;
- 1 3 transformarea de translaie;
- 3 1 transformarea perspectiv:
- 1 1 transformarea de scalare general ( w).

a) Translaia
k t j t i t v
z y x

+ + =

(
(
(
(

=
1
z
y
x
P ,
(
(
(
(

=
1
'
z
y
x
P P t t t T P
z y x
= ) , , ( (1)


y
x
z
i


Curs 1 partial + 2+3
22

(
(
(
(

=
1 0 0 0
1 0 0
0 1 0
0 0 1
) , , (
z
y
x
z y x
t
t
t
t t t T (2)

b) Scalarea fa de origine

z y x
s s s , , - factori de scalare P s s s S P
z y x
= ) , , ( (3)
(
(
(
(

=
1 0 0 0
0 0 0
0 0 0
0 0 0
) , , (
z
y
x
z y x
s
s
s
s s s S (4)


c) Rotaia fa de axele sistemului de coordonate

Sistemul de coordonate este orientat dreapta i deci sensul
pozitiv de rotaie e dat de regula burghiului drept. De
exemplu, rotind axa Ox spre axa Oy , n jurul lui Oz ,
burghiul trebuie s se deplaseze n sensul pozitiv al axei Oz -
( ) k j i

= .
1) rotaia n jurul axei Oz




=
)
`

+ =
=
z z
y x y
y x x
2D la ca
cos sin
sin cos







(
(
(
(


=
1 0 0 0
0 1 0 0
0 0 cos sin
0 0 sin cos
) (

z
R (5)

P R P
z
= ) ( (6)



y
x
z
i


y
x
z
) , , ( z y x P
) , , ( z y x P

O
Curs 1 partial + 2+3
23
2) rotaia n jurul axei Oy

+ =
=
=


cos sin
sin cos
x z x
y y
x z z


P R P
y
= ) ( (7)


(
(
(
(

=
1
z
y
x
P ,
(
(
(
(

=
1
z
y
x
P

(
(
(
(

=
1 0 0 0
0 cos 0 sin
0 0 1 0
0 sin 0 cos
) (

y
R (8)


3) rotaia n jurul axei Ox

+ =
=
=


cos sin
sin cos
z y z
z y y
x x


P R P
x
= ) ( (9)

(
(
(
(

=
1 0 0 0
0 cos sin 0
0 sin cos 0
0 0 0 1
) (

x
R (10)

Obs. Toate matricele de transformare anterioare au inverse i avem urmtoarele relaii:
) , , ( )] , , ( [
1
z y x z y x
t t t T t t t T =


( )
z y x z y x
s s s S s s s S 1 , 1 , 1 )] , , ( [
1
=

(11)
) ( )] ( [
1
=

x x
R R
) ( )] ( [
1
=

y y
R R
) ( )] ( [
1
=

z z
R R


y
x
z
P
P

O
y
x
z
P
P

O
Curs 1 partial + 2+3
24
d) Oglindirea fa de un plan al sistemului de coordonate

1) fa de planul xy (se inverseaz coordonata z ):

P O P
xy
=
(
(
(
(

=
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
xy
O (12)

2) fa de planul yz (se inverseaz coordonata x ):

P O P
yz
=
(
(
(
(

=
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
yz
O (13)

3) fa de planul xz (se inverseaz coordonata y ):

P O P
xz
=
(
(
(
(

=
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
xz
O (14)



2.2 Transformri complexe

Transformrile succesive aplicate unui obiect 3D se pot combina ntr-o singur
transformare. De exemplu, dac ordinea de aplicare a matricelor elementare este
n
T T T ,... ,
2 1
, atunci transformarea compus se scrie:

P T T T T P
n n
=
1 2 1
... (15)
unde
(
(
(
(

=
1
z
y
x
P ,
(
(
(
(

=
1
z
y
x
P


a) Rotaia unui punct n jurul unei drepte oarecare

Considerm cazul n care dreapta se specific printr-un punct ) , , (
0 0 0
z y x A i un
vector direcie:
k c j b i a v

+ + = .
Curs 1 partial + 2+3
25
Punctul P se rotete cu un unghi n jurul dreptei (fig. 1).


Fig. 1


Putem scrie:
P M P = ,

unde matricea transformrii M se poate compune din urmtoarele transformri
elementare:

1) - translaia dreptei astfel nct punctul A s ajung in origine
) , , (
0 0 0
z y x T ;
2) - rotaia dreptei n jurul axei x pn ce ajunge n planul xOz (o rotim cu unghiul )
) (
x
R ;
3) - rotaia n jurul lui y pn ce ajunge peste axa z ) (
y
R (Obs. Rotaia de unghi
nu e n sens trigonometric);
4) - rotaia punctului dat cu unghiul n jurul axei z ) (
z
R ;
5) - rotaia invers de la punctul 3 ) (
y
R ;
6) - rotaia invers de la punctul 2 ) (
x
R ;
7) - translaia invers de la punctul 1, ) , , (
0 0 0
z y x T .

n consecin rezult:

) , , ( ) ( ) ( ) ( ) ( ) ( ) , , (
0 0 0
Oz axa cu aliniere
0 0 0
z y x T R R R R R z y x T M
x y z y x
=

(16)

z
A = ) ( ) (
x y
R R - alinierea dreptei cu axa Oz

Pentru a determina unghiul (rotaie n jurul axei Ox ) i unghiul (n jurul axei
Oy ), procedm astfel:
Dreapta specificat o scriem prin ecuaiile parametrice:

y
x
z
) , , ( z y x P
) , , ( z y x P

O

1
M
M
2

A
v


3
Curs 1 partial + 2+3
26
ct z z
bt y y
at x x
+ =
+ =
+ =
0
0
0
(17)

Dup translaia punctului ) , , (
0 0 0
z y x A n origine, considerm un punct de pe dreapt, M ,
corespunztor lui 1 = t , care se rotete cu unghiul faa de Ox astfel nct dreapta s
ajung n planul xOz . Apoi se realizeaz o rotaie cu unghiul , n jurul lui Oy , pentru a
suprapune dreapta pe axa z (fig. 2).


Fig. 2


Din figur rezult:
2 2
c b O M + = ,
' ' '
MO O M = ,
M O
N O
'
'
cos = ,
M O
MN

= sin


2 2
2 2
sin
cos
c b
b
c b
c
+
=
+
=

(18)

2 2 2
2 2 2
2 2
sin
cos
c b a
a
c b a
c b
+ +
=
+ +
+
=

(19)
Obs. Se va lua unghiul cu semn invers celui rezultat, , deoarece rotaia nu e n sens
trigonometric.



y
x
z
a
O
) , , ( c b a M
O
|
.
|

\
|
+
2 2
, 0 , c b a M
N
b
c
M
P
Curs 1 partial + 2+3
27
Dac dreapta se d prin dou puncte ) , , (
0 0 0
z y x A i ) , , (
1 1 1
z y x B scriem:

t z z z z
t y y y y
t x x x x
) (
) (
) (
0 1 0
0 1 0
0 1 0
+ =
+ =
+ =
(20)

i deci, comparnd cu relaiile (17) rezult:


0 1
x x a = ,
0 1
y y b = ,
0 1
z z c = (21)


b) Oglindirea fa de un plan oarecare

Considerm planul de oglindire specificat printr-un punct ) , , (
0 0 0
z y x A i vectorul
normal la plan n

. O procedur de obinere a transformrii de oglindire poate fi urmtoarea:



1) - o translaie astfel nct planul s treac prin origine ) , , (
0 0 0
z y x T ;
2) - alinierea vectorului normal la plan n

cu axa Oz pozitiv: ) , ( z n A

- dou rotaii;
3) - oglindirea fa de planul xOy :

(
(
(
(

=
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
xy
O
4) - transformarea invers de la punctul 2: ) , (
1
z n A

;
5) - translaia invers de la punctul 1: ) , , (
0 0 0
z y x T

Din cele de mai sus rezult c matricea transformrii este:

) , , ( ) , ( ) , ( ) , , (
0 0 0
1
0 0 0
z y x T z n A O z n A z y x T M
xy
=


(22)




2.3 Proiecii

Definiie. Proiecia constituie o transformare dintr-un spaiu
n
R ntr-un spaiu
p
R
unde n p < . n grafic 3 = n , 2 = p . Proiecia unui obiect 3D ntr-un plan de proiecie
(PP) e determinat de mulimea punctelor de intersecie dintre drepte care pleac dintr-un
punct fix numit centru de proiecie (CP) i planul de proiecie, fiecare dreapt trecnd
printr-un punct al obiectului 3D.
n grafic proiecia se face ntotdeauna ntr-un plan, iar proiectorii sunt drepte.
Exist i proiecii neplane (de ex. n cartografie) unde i suprafeele de proiecie i
proiectorii sunt curbe.
Curs 1 partial + 2+3
28
n funcie de poziia centrului de proiecie (CP) fa de planul de proiecie,
proieciile se clasific n:
a) proiecie perspectiv CP se afl la distant finit fa de planul de proiecie;
b) proiecie paralel CP se afl la distan infinit fa de planul de proiecie.


a) Proiecia perspectiv

Se specific printr-un centru de proiecie i un plan de proiecie.



CP centru de proiecie
PP plan de proiecie

' '
B A - proiecia segmentului AB







Proiecia perspectiv creeaz imagini asemntoare celor obinute cu un aparat de
fotografiat. Se caracterizeaz prin:
- efectul de micorare (perspective foreshortening) dimensiunea obiectului
proiectat este invers proporional cu distana de la CP la obiect (obiectele mai
deprtate apar mai mici n PP).
- proieciile liniilor paralele, dar care nu sunt paralele cu PP converg ntr-un punct
din PP numit punct de convergen (vanishing point). Dac liniile proiectate sunt
paralele cu una din axele sistemului de coordonate, punctul de convergen se
numete punct de convergent principal PCP. n figura 4 este analizat proiecia n
planul 0 = z ( xOy ) a unui cub cu muchiile paralele cu axele de coordonate.

Fig. 4


Fig. 3
O
PCP
y
x
z
Curs 1 partial + 2+3
29
Tipuri de proiecii perspectiv:

1) cu un PCP Planul de proiecie intersecteaz o ax a sistemului de coordonate, de
ex: planul 0 = z din fig. 4 (este paralel cu planul xOy sau xOz sau yOz );

2) cu dou puncte de convergent principale planul de proiecie intersecteaz dou
axe de coordonate (este paralel cu o ax de coordonate);



3) cu trei PCP planul de proiecie intersecteaz toate axele de coordonate



b) Proiecia paralel

Este specificat printr-o direcie de proiecie DP i un plan de proiecie.



DP direcie de proiecie



PCP
PCP
PCP
PCP
PCP
Curs 1 partial + 2+3
30
Proiecia paralel ofer o imagine mai puin realist, fiind utilizat pentru o reprezentare
exact a formei i dimensiunii obiectului. Aceast reprezentare pstreaz paralelismul
liniilor, iar unghiurile se conserv doar pentru feele obiectului paralel cu PP.



Clasificare proiecii
































Proiecii
Perspective (proiectori convergenti)
1-PCP
2-PCP
3-PCP
Paralele
(proiectori || )
Ortografice
(proiectori
perpendiculari pe PP)
Oblice
(proiectori nu sunt
perpendiculari pe PP)
Vederi
(PP || cu un
plan al SC)
din fata
de sus
din lateral
axonometrice
(PP este oarecare)
izometric: normala
face unghiuri egale
cu axele SC
dimetric: unghiuri
egale cu 2 axe
trimetric
cavalier -
0
45
cabinet - ) 4 , 63 2 ( 4 , 63
0 0
= arctg
oarecare

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