transformări grafice TRIDIMENSIONALE
description
Transcript of transformări grafice TRIDIMENSIONALE
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:
q
z
y
x
q
q
q
TRANSFORMĂRI 3DCu q s-a notat parametrul real cu ajutorul căruia se realizează următoarele definiri:
Punctele pentru care q=0 sunt puncte situate la infinit.Transformarea generalizată este:
q/zzq/yyq/xx qqq
1
z
y
x
aaaa
aaaa
aaaa
aaaa
1
'z
'y
'x
44434241
34333231
24232221
14131211
TRANSFORMĂRI 3D
Transformatea se scrie:
unde A notează matricea transformării:
44434241
34333231
24232221
14131211
aaaa
aaaa
aaaa
aaaa
A
Ar'r
TRANSFORMĂRI 3D
Matricea transformării poate fi împărţită în blocuri matriceale, astfel:
1131
1333A
TRANSFORMĂRI 3DCele 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:
1000
t100
t010
t001
Dz
y
x
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:
sau, în format matriceal:
z
y
x
tz'z
ty'y
tx'x
Dr'r
SCALAREA 3D
Matricea de scalare locală 3D este:
1000
000
000
000
z
y
x
ls
s
s
S
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:
sau, în format matriceal:
zsz
ysy
xsx
z
y
x
'
'
'
Srr '
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:
1000
0100
0010
0001
I
SCALAREA 3D
Matricea de scalare globală 3D este:
O altă posibilitate de reprezentare a acestei transformări este:
1000
000
000
000
s
s
s
S
s
Sg
000
0100
0010
0001
SCALAREA 3D
Ca o consecinţă a ultimei forme de reprezentare, putem scrie:
Observaţie:
Scalarea globală poate fi privită ca fiind o scalare locală de tipul:
cu
1000
0/100
00/10
000/1
1
s
s
s
Ss
S gG
1000
0/100
00/10
000/1
z
y
x
Ls
s
s
S ssss zyx
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:
Pentru rotaţia în jurul axei Oy, avem:
1000
0cossin0
0sincos0
0001
xR
1000
0cos0sin
0010
0sin0cos
yR
ROTAŢIA 3D ÎN JURUL UNEI AXE
Matricea de rotaţie în jurul axei Oz cu unghiul este:
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.
1000
0100
00cossin
00sincos
zR
PROPRIETĂŢI
Inversa unei matrice ortogonale există întotdeauna şi este chiar transpusa matricei directe, adică:
Observaţii:
1. Inversa matricei de translare se obţine prin inversarea semnelor parametrilor .
2. Inversa matricei de scalare se obţine prin trecerea parametrilor în .
3. Inversa matricei de rotaţie se obţine prin schimbarea semnului unghiului de rotaţie.
TMM 1
zyx ttt ,,
zyx sss ,,zyx sss /1,/1,/1
PROPRIETĂŢI
Se poate scrie:
)()(
)()(
)()(
)/1,/1,/1(),,(
),,(),,(
1
1
1
1
1
zz
yy
xx
zyxzyx
zyxzyx
RR
RR
RR
sssSsssS
tttTtttT
FORFECAREA 3D
Matricea de forfecare este:
Expresia analitică este:
1000
01
01
01
fc
ib
gd
F
111
'
'
'
zyfxc
ziyxb
zgydx
z
y
x
Fz
y
x
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.
Pentru celelalte două cazuri avem:
1000
0100
0010
0001
xyO
1000
0100
0010
0001
yzO
1000
0100
0010
0001
zxO
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:
atunci punctele sale P verifică relaţia:
cu: .
0 DCzByAx
0PN T
D
C
B
A
N
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:
Conform acestei relaţii, rezultă condiţia:
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:
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*.
00 PMQNsauPMNQ TTT
IMQT
NMNT 1'