Sunteți pe pagina 1din 21

TRANSFORMĂRI

GRAFICE
TRIDIMENSIONALE
NOŢIUNI GENERALE
Astfel de transformări sunt:

- translarea
- scalarea
- rotaţia
- oglindirea
- forfecarea
- proiecţia
TRANSFORMĂRI 3D

Aşa cum transformările 2D se reprezintă prin


intermediul matricelor 3x3 folosind coordonate
omogene, transformările 3D se vor reprezenta
ca matrice 4x4.
Punctul din spaţiu având coordonatele (x,y,z) se
reprezintă prin vectorul: x 
q
 
 yq 
z 
 q

q  
TRANSFORMĂRI 3D
Cu q s-a notat parametrul real cu ajutorul căruia se realizează următoarele
definiri:
xq  x / q y q  y / q z q  z / q
Punctele pentru care q=0 sunt puncte situate la infinit.
Transformarea generalizată este:

 x'  a11 a12 a13 a14   x 


 y'  a a22 a23 
a24   y 
    21  
 z'  a31 a32 a33 a34   z 
    
1  a41 a42 a43 a44  1 
TRANSFORMĂRI 3D

Transformatea se scrie: r'  Ar


unde A notează matricea transformării:

a11 a12 a13 a14 


a a22 a23 
a24 
A
21

a31 a32 a33 a34 


 
a41 a42 a43 a44 
TRANSFORMĂRI 3D
Matricea transformării poate fi împărţită în
blocuri matriceale, astfel:

  
 3  3  3  1
A 
 
 
 1  3  1  1
TRANSFORMĂRI 3D
Cele patru blocuri matriceale au următoarele semnificaţii

- matricea 3x3 include transformările de scalare


locală, forfecare, oglindire şi rotaţie;

- matricea 1x3 reprezintă transformarea de


perspectivă;

- matricea 3x1 reprezintă transformarea de translare;

- matricea 1x1 reprezintă transformarea de scalare


globală.
TRANSFORMĂRI 3D
Într-un sistem de coordonate cartezian ortogonal drept, o rotaţie pozitivă se
defineşte astfel încât privind de pe o semiaxă pozitivă către origine, o rotaţie
în sens trigonometric cu /2 transformă, prin permutare, o semiaxă pozitivă
în alta. Această regulă este echivalentă cu regula burghiului drept utilizată în
fizică.
Sistemul de coordonate cartezian ortogonal drept este sistemul standard
utilizat în matematică. Uneori, însă, este mai convenabilă utilizarea sistemului
stâng, oferind o interpretare mai naturală a sensurilor pozitive ale axelor. Într-
un sistem de coordonate stâng o rotaţie pozitivă se consideră în sens orar,
privind de pe o semiaxă pozitivă înspre origine.
Pornind de la aceste definiţii ale rotaţiei pozitive, indiferent de sistemul de
coordonate 3D utilizat, matricea transformării de rotaţie în jurul unei axe este
aceeaşi.
TRANSLAREA 3D

Matricea de translare 3D este:

1 0 0 tx 
0 1 0 ty 
D 
0 0 1 tz 
 
0
 0 0 1 

Dacă x,y,z sunt coordonatele unui punct P din spaţiu, prin translare el este dus în punctul P’ de coordonate
x’,y’,z’. Avem:
 x'  x  t x

 y'  y  t y

 z'  z  t z
sau, în format matriceal:

r'  Dr
SCALAREA 3D

Matricea de scalare locală 3D este:

sx 0 0 0
0 s 0 0
Sl   
y

0 0 sz 0
 
0 0
 0 1

Dacă P(x,y,z) sunt coordonatele unui punct P din spaţiu, prin scalare faţă de origine el este transformat în
punctul P’ (x’,y’,z’). Avem:
 x'  s x x

 y'  s y y

z'  sz z
sau, în format matriceal:

r '  Sr
SCALAREA 3D

Observaţii:

1. Ca şi în cazul transformărilor 2D, factorii de scalare sunt numere


pozitive.

2. Un factor de scalare subunitar (s<1) produce o micşorare a


modulului vectorului de poziţie al punctului scalat, în timp ce un factor
de scalare supraunitar (s>1) produce o mărire a modulului acestui vector.

3. Scalarea unitară (s=1) coincide cu transformarea identitate:

1 0 0 0
0 1 0 0
I  
0 0 1 0
 
0 0 0 1
SCALAREA 3D

Matricea de scalare globală 3D este:

s 0 0 0
0 s 0 0
S  
0 0 s 0
 
0 0 0 1

O altă posibilitate de reprezentare a acestei transformări este:

1 0 0 0
0 1 0 0
Sg  
0 0 1 0
 
0 0 0 s
SCALAREA 3D

Ca o consecinţă a ultimei forme de reprezentare, putem scrie:

1 / s 0 0 0
 0 1/ s 0 0
1
SG  Sg  
s  0 0 1/ s 0
 
 0 0 0 1

Observaţie:

Scalarea globală poate fi privită ca fiind o scalare locală de tipul:

1 / s x 0 0 0
 0 1 / s 0 0 
 
y
SL cu s x  s y  s z  s
 0 0 1 / sz 0 
 
 0
 0 0 1
ROTAŢIA 3D ÎN JURUL UNEI AXE

În cazul rotaţiei punctului P(x,y,z) în jurul axei Ox, componeta x a vectorului de


poziţie nu se schimbă (este un invariant). Analog se petrec lucrurile şi pentru
rotaţii în jurul axei Oy şi respectiv Oz.
Matricea de rotaţie în jurul axei Ox cu unghiul  este:

1 0 0 0
0 cos   sin  0
Rx   
0 sin  cos  0
 
0 0 0 1
Pentru rotaţia în jurul axei Oy, avem:

 cos  0 sin  0
 0 1 0 0
Ry  
  sin  0 cos  0
 
 0 0 0 1
ROTAŢIA 3D ÎN JURUL UNEI AXE

Matricea de rotaţie în jurul axei Oz cu unghiul  este:

cos   sin  0 0
sin  cos  0 0
Rz   
 0 0 1 0
 
 0 0 0 1

Blocurile matriceale 3x3 construite în poziţia stânga-sus pe cele trei matrice


anterioare, sunt formate din vectori (coloane) reciproc ortogonali. Putem verifica
acest lucru calculând produsele scalare între fiecare pereche de vectori ce poate fi
formată, şi verificând că toate acestea sunt nule.

Rezultă că submatricele în cauză sunt ortogonale, deci au determinantul nenul. În


cazul particular al exemplului nostru, acesta este egal cu 1.

Se ştie că transformările ortogonale conservă distanţale şi unghiurile.


PROPRIETĂŢI

Inversa unei matrice ortogonale există întotdeauna şi este chiar transpusa


matricei directe, adică:
1
M  MT
Observaţii:

1. Inversa matricei de translare se obţine prin inversarea semnelor


parametrilor t x ,. t y , t z

2. Inversa matricei de scalare se obţine prin trecerea parametrilor


s x , s y , s z în 1 / s x , 1 / s y , 1 / s z .

3. Inversa matricei de rotaţie se obţine prin schimbarea semnului


unghiului de rotaţie.
PROPRIETĂŢI

Se poate scrie:

T 1 (t x , t y , t z )  T ( t x ,t y ,t z )
S 1 ( s x , s y , s z )  S (1 / s x ,1 / s y ,1 / s z )
Rx1 ( )  Rx (  )
R y1 ( )  R y (  )
Rz1 ( )  Rz (  )
FORFECAREA 3D

Matricea de forfecare este:

1 d g 0
b 1 i 0
F  
c f 1 0
 
0 0 0 1

Expresia analitică este:

 x'  x   x  yd  zg 
 y '  y  xb  y  zi 
   F    
 z'  z   xc  yf  z 
     
1
  1
   1 
OGLINDIREA 3D

Vom analiza în continuare oglindirea faţă de un plan al sistemului de coordonate.

Fie planul de oglindire Oxy. În urma oglindirii, schimbă semnul doar coordonata x.

1 0 0 0
0 1 0 0
Oxy  
0 0  1 0
 
0 0 0 1

Pentru celelalte două cazuri avem:

 1 0 0 0 1 0 0 0
 0 0 0  1 0
1 0 0
O yz   Ozx  
 0 0 1 0 0 0 1 0
   
 0 0 0 1 0 0 0 1
GENERALIZĂRI

Transformările prezentate până acum se referă la puncte din spaţiu. Entităţile


geometrice superioare punctului vor fi tratate ca ansambluri de puncte. De
exemplu, în cazul unui segment de dreaptă se vor transforma puncte din
cadrul acestuia. Într-un domeniu plan, transformarea segmentului se va
reduce la transformarea capetelor lui. Analog, în cazul unui plan vor fi
transformate trei puncte de definire a acestuia. Dacă, însă, planul este definit
prin ecuaţia:
Ax  By  Cz  D  0
atunci punctele sale P verifică relaţia:

A NT  P  0
B 
cu:
N   .
C 
 
D
GENERALIZĂRI

Fie M matricea transformării aplicate tuturor punctelor P din plan. Pentru a


menţine ultima relaţie adevărată, trebuie determinată matricea Q astfel încât:

Q  N T  M  P  0 sau N T  QT  M  P  0
Conform acestei relaţii, rezultă condiţia:
QT  M  I
unde cu I s-a notat matricea identitate de dimensiuni corespunzătoare,
deoarece matricea Q este (M-1)T.

Normala planului transformat se obţine cu relaţia:


N '  M  N
1 T

Dacă determinantul matricei M este zero (M include o proiecţie), atunci nu


există matricea Q. În acest caz se va utiliza în locul matricei Q matricea
adjunctă Q*.

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