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 )
Rx1 ( ) Rx ( )
R y1 ( ) R y ( )
Rz1 ( ) 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*.