Documente Academic
Documente Profesional
Documente Cultură
x
z
2
Translaia 3D Scalarea 3D
Dup analogie cu 2D: Dup analogie cu 2D obinem
scalarea locala :
[ ]
1 0 tx
s x 0 0
[][ ]
x tx
T ( t x ,t y ) = + = 0 1 t y
y ty
0 0 1
S sx , s y 0x s
s 0
y
x
* 0 s y 0
y 0 0 1
[][ ][ ]
1 0 0 tx
x t sx 0 0 0
x
0 1 0 ty x s 0 0 x
T ( t x ,t y ,t z ) = y + t y = 0 sy 0 0
0 0 1 tz S sx , s y , sz 0 s y 0 * y
z tz 0 0 s z 0
0 0 0 1 0 0 sz z
3 0 0 0 1 4
S=(sx, sy, sz)
Scalarea 3D Rotaia 3D
Scalare globala: Va trebui sa specificam axa de rotaie
Pentru nceput vom analiza cele mai simple cazuri
cnd axa de rotaie coincide cu una dintre axe.
Pentru rotaia n jurul axei z matricea e la fel ca i
pentru cazul 2D:
5 6
Rotaia 3D Rotaia 3D
x = x x = zsin + xcos
y = ycos - zsin y = y
z = ysin + zcos z = zcos - xsin
7 8
Rotaia 3D Rotaia 3D: rezumat
[ ] [ ]
1 0 0 0 cos 0 sin 0
Rotaia n jurul axei z: Rz()
0 1 0 0
R(1,0,0,)= 0 cos sin 0 R(0,1,0, )=
0 sin cos 0 sin 0 cos 0
0 0 0 1 0 0 0 1
[ ]
cos sin 0 0
R( 0,0,1, )= sin cos 0 0
x = xcos - ysin
y = xsin + ycos
z = z
0 0 1 0
0 0 0 1
9 10
11 12
Matricea generalizata Transformri inverse
Transformare Matrce inversa
0 1 / sz 0
forfecare, oglindire i rotaie 0 0 0 1
Ryz-1 () Rzx-1() Rxy-1()
matricea 3x1 reprezint transformarea de translaie Rotatie 1 0 00 cos 0 sin 0 cos sin 0 0
0 cos sin 0 0 1 0 0 sin cos 0 0
matricea 1x3 reprezint transformarea de , ,
0 sin cos 0 sin 0 cos 0 0 0 1 0
proiectare perspectiv
0 0 0 1
0 0 0
1 0 0 0 1
Rotatie(k, )
17 18
19 20
Rotaia 3D Rotaia 3D
Axa oarecare de rotaie (d) se specific printr-un punct A(x0 ,y0 ,z0) i un vector
Rotaia in jurul unei axe paralele cu o axa a sistemului direcie C = cx * i + cy * j + c z * k, unde cx , cy , cz sunt cosinuii directori.
de coordonate: 1.Translatie care face ca dreapta sa treac prin origine: T(-xd, -yd, -zd)
2. Alinierea dreptei cu una dintre axele principale, de ex. cu axa OZ:
1. Translaia obiectului astfel nct axa de rotaie sa se
2.1. Rotaie in jurul axei OX, cu un unghi ux, prin care dreapta ajunge in
suprapun peste o axa a sistemului de coordonate. planul XOZ: Rox(ux)
2. Rotaia obiectului in jurul axei sistemului de 2.2. Rotaie in jurul axei OY, cu un unghi uy, prin care dreapta se suprapune
pe axa OZ: Roy(uy)
coordonate cu unghiul u.
[ ] []
x' x 3. Rotaia cu unghiul dat, u, in jurul axei pe care s-a aliniat dreapta: rotaie in
3. Translaia inversa celei din pasul 1. y ' =[ M ] y jurul axei OZ : Roz(u)
M = T(tx, ty, tz) * R(u) * T(-tx, - ty, - tz) z' z 4. Transformarea inversa celei din pasul 2:
1 1 4.1. Rotaie in jurul axei OY, cu unghiul uy: Roy(-uy)
4.2. Rotatie in jurul axei OX, cu unghiul ux: Rox(-ux)
5. Transformarea inversa celei de la pasul 1: T(xd, yd, zd)
21 22
Rotaia ax cu ax...
Rotaia ax cu ax...
Exemplu
E complicat sa calculezi trei unghiuri de rotaie in
raport cu o axa arbitrara u si cu un unghi specificat y
u
Axa de rotatie trece prin punctele P1 si P1 .
Soluia ar fi sa orientam axa u cu una dintre axele
principale
Pasul 1: Gsim rotind in jurul axei y pana cnd axa u v v
se poziioneaz in planul xy
y
Pasul 2: Gsim rotind in jurul axei z pana aliniem u cu u
x
P2
axa x v
Acum u are o aliniere convenabila si putem efectua z
rotirea pentru vrful v: P1
Pasul 3: Rotim v cu in jurul axei x (ea coincide cu axa
u) z x
Pasul 4: La sfrit realizam transformrile inverse.
Unica rotaie pe care o prezervm e cea in jurul axei u cu
, care a i ost scopul nostru
T(P1) R
P1 P1' P1' P1 P1'
P1'
x x z x z
z z P2'' z x z x P2'' x
Initial 1. translate axis 2. rotate axis Initial 1. translate axis 2. rotate axis
y y P2' y P2 y y y P2
P2'
Rz()
R1 T(P1)
P1' P ' P1 P1' P ' P1
1
z x x z
1
P2'' z z x P2'' z x x z x
3. rotate around 4. rotate back 5. translate back 3. rotate around 4. rotate back 5. translate back
z-axis z-axis
25 26
Forfecarea Forfecarea
Ecuaii generale pentru forfecare
x' = x + y*d + z*g
[ ]
1 d g 0
y'= x*b + y +z*i
b 1 i 0
z'= x*c +y*f +z [ F ]=
c f 1 0
0 0 0 1
[ ] []
x' x
y ' =[ F ] y
z' z
1 1
27 28
Oglindirea Oglindirea
Oglindirea fa de planul xy : in acest caz se Oglindirea fa de planul yz
inverseaz doar coordonata z, coordonatele x
i y rmnnd neschimbate
29 30
31 32
Transformri afine Transformri afine
Toate transformarile despre care s-a vorbit Proprietati:
pana acum poarta un nume generic de
1. Coordonatele transformate x,y si z depind linear de
transformari afine coordonatele originale x, y si z.
x' a xx x a xy y a xz z bx 2. Parametrii aij si bk sunt constante care determina tipul
transformrii (translaie, rotaie, scalare, oglindire)
3. Liniile paralele rmn paralele
y ' a yx x a yy y a yz z b y 4. Pentru translaie, rotaie i oglindire: unghiurile i
lungimile sunt conservate
z ' a zx x a zy y a zz z bz
33 34
Exemplu de transformri
Exemplu transformri compuse 3D!
compuse 3D
Fie un cub centrat la (2,2,2) Fie un cub centrat la (2,2,2)
Rotim obiectul in spa iul su cu 30 o n jurul axei x , cu Rotim obiectul in spaiul sau cu 30 o in jurul axei x , cu
60o n jurul axei y i cu 90o n jurul axei z 60o in jurul axei y i cu 90o in jurul axei z
Scalm n spa iul obiect cu 1 n x, 2 n y, 3 n z Scalam in spa iul obiect cu 1 in x, 2 in y, 3 in z
Translaie cu (2,2,4) n spaiul scenei (world space) Translaie cu (2,2,4) in spaiul scenei (world space)
Secvena de transformare : M = TT0-1SxyRxyRzxRyzTo, Secventa de transformare : M = TT0-1SxyRxyRzxRyzTo,
unde T0 e o translaie din (2,2) n (0,0): unde T0 e o translaie din (2,2) n (0,0):
1 0 0 2 1 0 0 2 1 0 0 0 cos 90 sin 90 0 0 cos 60 0 sin 60 0 1 0 0 0 1 0 0 2
0 1 0 2 0 1 0 2 0 2 0 0 sin 90 cos 90 0 0 0 1 0 0 0 cos 30 sin 30 0 0 1 0 2
0 0 1 4 0 0 1 2 0 0 3 0 0 0 1 0 sin 60 0 cos 60 0 0 sin 30 cos 30 0 0 0 1 2
0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1
T T 0-1 S xy R xy R zx R yz T0
35 36
Exemplu Exemplu calcul
Un cub este definit prin vrfurile sale Scalarea cu sx=2, sy=3, sz=1, apoi translatie tx=2, ty=2, t z=2
0 4 0 4 0 4 0 4 2 0 0 0
0,4,0 4,4,0 V= 0 0 4 4 0 0 4 4 S=0 3 0 0
0 0 0 0 4 4 4 4 0 0 1 0
[ ]
0 4 0 4 0 4 0 4 1 1 1 1 1 1 1 1 0 0 0 1
0,4,4 4,4,4
V= 0 0 4 4 0 0 4 4 0 8 0 8 0 8 0 8 1 0 0 2
0 0 0 0 4 4 4 4 0 0 12 12 0 0 12 12 T= 0 1 0 2
0,0,0
1 1 1 1 1 1 1 1 V'=S*V = 0 0 0 0 4 4 4 4 0 0 1 2
4,0,0 1 1 1 1 1 1 1 1 0 0 0 1
0,0,4 4,0,4 2 10 2 10 2 10 2 10
V''=T*V'=TSV = 2 2 14 14 2 2 14 14
2 2 2 2 6 6 6 6
37 1 1 1 1 1 1 1 1 38
Exemplu calcul
Scalarea cu sx=2, sy=3, sz=1, apoi translaie tx=2, ty=2, tz=2,
prin compoziia transformrii
0 4 0 4 0 4 0 4
V= 0 0 4 4 0 0 4 4
0 0 0 0 4 4 4 4
2
1 1
0
1
0
1
2
1 1
1
1 1
0 0 2 2 0 0 0
Intrebri ?
M=TS = 0 3 0 2 T= 0 1 0 2 S=0 3 0 0
0 0 1 2 0 0 1 2 0 0 1 0
0 0 0 1 0 0 0 1 0 0 0 1
2 10 2 10 2 10 2 10
V'=MV=TSV = 2 2 14 14 2 2 14 14
2 2 2 2 6 6 6 6
1 1 1 1 1 1 1 1 39 40