scalarea 3d

21
TRANSFORMĂRI GRAFICE TRIDIMENSIONALE

Upload: vuongcong

Post on 02-Feb-2017

240 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: scalarea 3d

TRANSFORMĂRI GRAFICE

TRIDIMENSIONALE

Page 2: scalarea 3d

NOŢIUNI GENERALE

Astfel de transformări sunt:

- translarea- scalarea- rotaţia- oglindirea- forfecarea- proiecţia

Page 3: scalarea 3d

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

Page 4: scalarea 3d

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

1zyx

aaaaaaaaaaaaaaaa

1'z'y'x

44434241

34333231

24232221

14131211

Page 5: scalarea 3d

TRANSFORMĂRI 3D

Transformatea se scrie:unde A notează matricea transformării:

44434241

34333231

24232221

14131211

aaaaaaaaaaaaaaaa

A

Ar'r

Page 6: scalarea 3d

TRANSFORMĂRI 3D

Matricea transformării poate fi împărţită în blocuri matriceale, astfel:

1131

1333A

Page 7: scalarea 3d

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ă.

Page 8: scalarea 3d

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.

Page 9: scalarea 3d

TRANSLAREA 3D

Matricea de translare 3D este:

1000t100

t010t001

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'ytx'x

Dr'r

Page 10: scalarea 3d

SCALAREA 3D

Matricea de scalare locală 3D este:

1000000

000000

z

y

x

l s

ss

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

ysyxsx

z

y

x

'

''

Srr '

Page 11: scalarea 3d

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:

1000010000100001

I

Page 12: scalarea 3d

SCALAREA 3D

Matricea de scalare globală 3D este:

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

1000000000000

ss

s

S

s

Sg

000010000100001

Page 13: scalarea 3d

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

10000/10000/10000/1

1s

ss

Ss

S gG

10000/100

00/10000/1

z

y

x

L s

ss

S ssss zyx

Page 14: scalarea 3d

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:

10000cossin00sincos00001

xR

10000cos0sin00100sin0cos

yR

Page 15: scalarea 3d

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.

1000010000cossin00sincos

zR

Page 16: scalarea 3d

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

Page 17: scalarea 3d

PROPRIETĂŢI

Se poate scrie:

)()(

)()(

)()(

)/1,/1,/1(),,(

),,(),,(

1

1

1

1

1

zz

yy

xx

zyxzyx

zyxzyx

RR

RR

RR

sssSsssS

tttTtttT

Page 18: scalarea 3d

FORFECAREA 3D

Matricea de forfecare este:

Expresia analitică este:

1000010101

fcibgd

F

111'''

zyfxcziyxbzgydx

zyx

Fzyx

Page 19: scalarea 3d

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:

1000010000100001

xyO

1000010000100001

yzO

1000010000100001

zxO

Page 20: scalarea 3d

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

DCBA

N

Page 21: scalarea 3d

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'