Transcript Grafika

Grafika
Transzformációk
kucg.korea.ac.kr
Fordította: Völgyi Beatrix
Tartalom
Grafika

Affin transzformációk

forgatás, eltolás és skálázás

Transzformációk homogén koordinátákkal
 Transzformációk konkatenációja





forgatás fix pont körül
általános forgatás
példa transzformációra
tetszőleges tengely körüli forgatás
Virtual trackball
kucg.korea.ac.kr
Fordította: Völgyi Beatrix
Transzformációk
Grafika

Vegyünk egy pontot (vagy vektort) képezzük le
egy másik pontba (vagy vektorba)
u
R
P
4D oszlop mátrix
v
Q  T P 
q  f p 
homogén koordináták
T
Q
v  Ru 
v  f u 
transzformációs függvény
kucg.korea.ac.kr
Fordította: Völgyi Beatrix
Affin transzformáció (1/2)
Grafika
Linearitás – lineáris függvény
f p  q   f  p   f q 
 Lineáris transzformáció


rendeljünk egy ponthoz (vagy vektorhoz) egy másik
pontot (vagy vektort)
v  Au
 a11 a12
a
a22
21

A
a31 a32

0
0
a13
a23
a33
0
44 mátrix
kucg.korea.ac.kr
a14 
a24 
a34 

1
 1 
 
u   2
 3 
 
0
vektor
 1 
 
p   2
3 
 
1
pont
Fordította: Völgyi Beatrix
Affin transzformáció (2/2)
Grafika

Lineáris transzformáció (folyt)

egyenestartó – egyenest egyenesbe képez
P   P0  d
homogén
koordináta
p   p 0  d
affin
transzformáció
Ap    Ap 0  Ad
 az egyenesnek csak a végpontjait transzformáljuk

CG-ban a transzformációk többsége affin

forgatás, eltolás, skálázás, nyírás
kucg.korea.ac.kr
Fordította: Völgyi Beatrix
Eltolás
Grafika

Egy ponthoz adott távolságra és irányban lévő
pontot rendelünk hozzá

elmozdulás vector d
(a) tárgy az
eredeti pozícióban
(b) eltolt tárgy
P  P  d
kucg.korea.ac.kr
Fordította: Völgyi Beatrix
Forgatás (1/2)
Grafika

Egyszerű példa 2D forgatásra
x   cos
y   sin 
x   cos   
y    sin    
kucg.korea.ac.kr
Fordította: Völgyi Beatrix
Forgatás (1/2)
Grafika

Egyszerű példa 2D forgatásra
x   cos
y   sin 
x   cos   
y    sin    
x   cos cos   sin  sin   x cos  y sin 
y   cos sin    sin  cos  x sin   y cos
kucg.korea.ac.kr
Fordította: Völgyi Beatrix
Forgatás (1/2)
Grafika

Egyszerű példa 2D forgatásra
x   cos
y   sin 
x   cos   
y    sin    
x   cos cos   sin  sin   x cos  y sin 
y   cos sin    sin  cos  x sin   y cos
 x  cos
 y    sin 
  
kucg.korea.ac.kr
 sin    x 
cos   y 
Fordította: Völgyi Beatrix
Forgatás (2/2)
Grafika

Szükséges



fixpont – a forgatás során a pont helyzete változatlan
forgatás szöge – pozitív forgatás (jobb-sodrású
rendszerben az óramutató irányával ellentétes)
forgástengely 3D-ben – a forgatás során az egyenes
képe önmaga
(a) fix pont körüli forgatás
kucg.korea.ac.kr
(b) 3D forgatás
Fordította: Völgyi Beatrix
Merev test transzformációk
Grafika

Forgatás és eltolás
 Forgatás és eltolás kombinációja nem képes
megváltoztatni a tárgy alakját
 csak a tárgy helyét és irányát
affin transzformációk, de nem merev test transzformációk
kucg.korea.ac.kr
Fordította: Völgyi Beatrix
Skálázás (1/2)
Grafika

Egy tárgy nagyságát növeljük vagy csökkentjük

egyenletes – skálázás minden irányból azonos mértékkel
nemegyenletes
egyenletes

Affin, nem merev test transzformációk

affin transzformációk: eltolás, forgatás, skálázás, nyírás
kucg.korea.ac.kr
Fordította: Völgyi Beatrix
Skálázás (2/2)
Grafika

Szükséges



fixpont
a skálázás iránya
skálázási együttható


nagyítás (α>1) vagy kicsinyítés (0≤α<1)
skálázás eredménye
Tükrözés – negatív skálázási együttható
tükrözés
kucg.korea.ac.kr
Fordította: Völgyi Beatrix
Transzformációk homogén
koordinátákkal

Megvalósítás homogén koordinátákkal
Q  P  v

Grafika
1 
 1 
 
 
q  p  v   2     2 
 3 
3 
 
 
1
0
Affin transzformációk – 44 mátrix
 a11 a12 a13 a14 
a

a
a
a
23
24 
M   21 22
a31 a32 a33 a34 


0
0
1
0
kucg.korea.ac.kr
Fordította: Völgyi Beatrix
Eltolás
Grafika

P ponthoz rendeljük a d távolságban lévő P’-t
p  p  d
p  Tp
 x
 x
 x 
 y
 y 
 
p   , p   , d   y 
z
 z
 z 
 
 
 
1
1
 
 
0
x  x   x
y  y   y
z  z   z
?
eltolás mátrixa
kucg.korea.ac.kr
Fordította: Völgyi Beatrix
Eltolás
Grafika

P ponthoz rendeljük a d távolságban lévő P’-t
p  p  d
p  Tp
 x
 x
 x 
 y
 y 
 
p   , p   , d   y 
z
 z
 z 
 
 
 
1
1
 
 
0
kucg.korea.ac.kr
x  x   x
y  y   y
z  z   z
1
0
T 
0

0
0 0 x 
1 0  y 
0 1 z 

0 0 1
Fordította: Völgyi Beatrix
Eltolás
Grafika

P ponthoz rendeljük a d távolságban lévő P’-t
p  p  d
p  Tp
 x
 x
 x 
 y
 y 
 
p   , p   , d   y 
z
 z
 z 
 
 
 
1
1
 
 
0

x  x   x
y  y   y
z  z   z
1
0
T 
0

0
0 0 x 
1 0  y 
0 1 z 

0 0 1
Az eltolás mátrixának inverze
T 1  x , y , z   T   x , y , z  
kucg.korea.ac.kr
?
Fordította: Völgyi Beatrix
Eltolás
Grafika

P ponthoz rendeljük a d távolságban lévő P’-t
p  p  d
p  Tp
 x
 x
 x 
 y
 y 
 
p   , p   , d   y 
z
 z
 z 
 
 
 
1
1
 
 
0

x  x   x
y  y   y
z  z   z
1
0
T 
0

0
0 0 x 
1 0  y 
0 1 z 

0 0 1
Az eltolás mátrixának inverze
1
0
T 1  x ,  y ,  z  T   x , y , z  
0

0

kucg.korea.ac.kr
 

0 0  x 
1 0   y 
0 1  z 

0 0
1 
Fordította: Völgyi Beatrix
Skálázás
Grafika

A skálázás mátrixa, ha a fixpontja az origó
p  Sp
x   x x
S  x ,  y ,  z 
y   y y
z   z z
?
skálázás mátrixa
kucg.korea.ac.kr
Fordította: Völgyi Beatrix
Skálázás
Grafika

A skálázás mátrixa, ha a fixpontja az origó
p  Sp
x   x x
S  x ,  y ,  z 
0
 x 0
y   y y
z   z z
kucg.korea.ac.kr
0
S
0

0
y
0
0
z
0
0
0
0
0

1
Fordította: Völgyi Beatrix
Skálázás
Grafika

A skálázás mátrixa, ha a fixpontja az origó
p  Sp
x   x x
S  x ,  y ,  z 
0
 x 0
y   y y
z   z z

0
S
0

0
y
0
0
z
0
0
0
0
0

1
A skálázás mátrixának inverze
 1 1 1 
S  x ,  y ,  z   S  , ,  
   
y
z 
 x
1
kucg.korea.ac.kr
?
Fordította: Völgyi Beatrix
Skálázás
Grafika

A skálázás mátrixa, ha a fixpontja az origó
p  Sp
x   x x
S  x ,  y ,  z 
0
 x 0
y   y y
z   z z

0
S
0

0
y
0
0
z
0
0
0
0
0

1
A skálázás mátrixának inverze
0
0
1  x
 0 1


0
1
1
1
y
1

S  x ,  y ,  z   S  ,
, 
     0
0 1 z
y
z 
 x

0
0
 0
kucg.korea.ac.kr
0
0
0

1
Fordította: Völgyi Beatrix
Forgatás (1/2)
Grafika

Forgatás az origó körül
x  x cos  y sin 
y   x sin   y cos
z  z
Rz  
p  Rz p
?
forgatás mátrixa
kucg.korea.ac.kr
Fordította: Völgyi Beatrix
Forgatás (1/2)
Grafika

Forgatás az origó körül
x  x cos  y sin 
y   x sin   y cos
z  z
Rx  Rx   
kucg.korea.ac.kr
Rz  
p  Rz p
cos
 sin 
Rz  
 0

 0
 sin 
cos
0
0
0 0
0 0
1 0

0 1
?
Fordította: Völgyi Beatrix
Forgatás (1/2)
Grafika

Forgatás az origó körül
x  x cos  y sin 
y   x sin   y cos
z  z
0
1
0 cos
Rx  Rx    
0 sin 

0
0
kucg.korea.ac.kr
0
 sin 
cos
0
Rz  
p  Rz p
cos
 sin 
Rz  
 0

 0
0
0
R y  R y   
0

1
 sin 
cos
0
0
0 0
0 0
1 0

0 1
?
Fordította: Völgyi Beatrix
Forgatás (1/2)
Grafika

Forgatás az origó körül
x  x cos  y sin 
y   x sin   y cos
z  z
0
1
0 cos
Rx  Rx    
0 sin 

0
0
kucg.korea.ac.kr
0
 sin 
cos
0
Rz  
p  Rz p
cos
 sin 
Rz  
 0

 0
 sin 
0
 cos
 0
0
R y  R y    
 sin 
0


1
 0
cos
0
0
0 0
0 0
1 0

0 1
0 sin 
1
0
0 cos
0
0
0
0
0

1
Fordította: Völgyi Beatrix
Forgatás (2/2)
Grafika

A forgatás mátrixának inverze
R 1    R  
cos    cos , sin     sin 
Rz1    Rz    
kucg.korea.ac.kr
?
Fordította: Völgyi Beatrix
Forgatás (2/2)
Grafika

A forgatás mátrixának inverze
R 1    R  
cos    cos , sin     sin 
cos    sin   
 sin    cos  
Rz1    Rz     
 0
0

0
 0
1
0 0  cos
0 0  sin 

1 0  0
 
0 1  0
R R
kucg.korea.ac.kr
sin 
cos
0
0
0 0
0 0
1 0

0 1
T : ortogonális mátrix
Fordította: Völgyi Beatrix
Nyírás (1/2)
Grafika

Még egy affin transzformáció
tárgy nyírása az x tengely irányában
x 
y 
z 
kucg.korea.ac.kr
?
Fordította: Völgyi Beatrix
Nyírás (1/2)
Grafika

Még egy affin transzformáció
tárgy nyírása az x tengely irányában
x  x  y cot 
y  y
z  z
kucg.korea.ac.kr
Fordította: Völgyi Beatrix
Nyírás (2/2)
Grafika

Nyírás az x tengely irányában
x  x  y cot 
y  y
z  z
H x  
p  H x p
?
nyírás mátrixa
kucg.korea.ac.kr
Fordította: Völgyi Beatrix
Nyírás (2/2)
Grafika

Nyírás az x tengely irányában
x  x  y cot 
y  y
z  z
kucg.korea.ac.kr
H x  
p  H x p
1 cot
0
1

Hx 
0
0

0
0
0 0
0 0
1 0

0 1
Fordította: Völgyi Beatrix
Nyírás (2/2)
Grafika

Nyírás az x tengely irányában
x  x  y cot 
y  y
H x  
z  z

Nyírás mátrixának inverze
H x1    H x    
kucg.korea.ac.kr
p  H x p
1 cot
0
1

Hx 
0
0

0
0
0 0
0 0
1 0

0 1
?
Fordította: Völgyi Beatrix
Nyírás (2/2)
Grafika

Nyírás az x tengely irányában
x  x  y cot 
y  y
H x  
z  z

Nyírás mátrixának inverze
p  H x p
1 cot
0
1

Hx 
0
0

0
0
1  cot
0
1
1

H x    H x    
0
0

0
0
kucg.korea.ac.kr
0 0
0 0
1 0

0 1
0 0
0 0
1 0

0 1
Fordította: Völgyi Beatrix
Transzfromációk
konkatenációja

Grafika
Konkatenáció



affin transzformációk összeszorzása
alap transzformációk sorozata
 tetszőleges transzformáció közvetlen definiálása
három, egymást követő transzformáció:
p
A
B
C
q  CBAp   CBAp
CBA
M  CBA
q  Mp
kucg.korea.ac.kr
q
p
M
q
Fordította: Völgyi Beatrix
Pont körüli forgatás (1/3)
Grafika

Fixpont: pf

jelölje Rz() a forgatást
Kocka forgatása a középpontja körül
kucg.korea.ac.kr
Fordította: Völgyi Beatrix
Pont körüli forgatás (2/3)
Grafika
transzformációk sorozata
M  T  p f Rz  T  p f 
kucg.korea.ac.kr
Fordította: Völgyi Beatrix
Pont körüli forgatás (3/3)
Grafika
M  T  p f Rz  T  p f 
1
0

0

0
0 0
1 0
0 1
0 0
cos
 sin 

 0

 0
kucg.korea.ac.kr
x f  cos
y f   sin 
z f  0

1  0
 sin 
cos
0
0
 sin 
0
cos
0
0
1
0
0
0 0 1
0 0 0
1 0  0

0 1  0
0 0  xf 
1 0  y f 
0 1  zf 

0 0
1 
x f  x f cos  y f sin  
y f  x f sin   y f cos 

0

1

Fordította: Völgyi Beatrix
Általános forgatás (1/2)
Grafika

3 egymás követő forgatás a tengelyek körül
Kocka forgatása a z tengely mentén
Kocka forgatása a y tengely mentén
?
Kocka forgatása a x tengely mentén
kucg.korea.ac.kr
Fordította: Völgyi Beatrix
Általános forgatás (2/2)
Grafika
R  Rx R y Rz
0
1
0 cos 

0 sin 

0
0
kucg.korea.ac.kr
0
 sin 
cos 
0
0  cos 
0  0
0  sin 

1  0
0 sin 
1
0
0 cos 
0
0
0 cos
0  sin 
0  0

1  0
 sin 
cos
0
0
0 0
0 0
1 0

0 1
Fordította: Völgyi Beatrix
Példa transzformációra (1/2)
Grafika

Adott egy tárgy
prototípusa
 Keresünk egy
transzformációt

használjunk egy affin
transzformációt, hogy
megváltoztassuk a tárgy
méretét, helyét és irányát
?
példa transzformációra
kucg.korea.ac.kr
Fordította: Völgyi Beatrix
Példa transzformációra(2/2)
Grafika
M  TRS
1
0

0

0
kucg.korea.ac.kr
0 0  x  cos 
1 0  y   sin 
0 1  z  0

0 0 1  0
 sin 
cos 
0
0
0 0  x 0
0
0 0  0  y 0
1 0  0
0 z

0 1  0
0
0
0
0
0

1
Fordította: Völgyi Beatrix
Tetszőleges tengely körüli
forgatás (1/6)

Grafika
Szükséges



fixpont: p0
elforgatás szöge: θ
forgástengely : vektor p2-p1
u  p 2  p1
 x 
u  
v
  y 
u
 z 
kocka forgatása tetszőleges
tengely mentén
kucg.korea.ac.kr
Fordította: Völgyi Beatrix
Tetszőleges tengely körüli
forgatás (2/6)
Grafika

Az első transzformáció a T(-p0) és az utolsó a
T(p0) eltolás

Probléma a forgatásnál
Tetszőleges forgatás megfeleltethető 3, az egyes
tengelyek körüli forgatásnak
 Hajtsunk végre két forgatást,
hogy a forgatás tengelye a z
tengelynek feleljen meg
 Forgassunk a z tengely körül
θ szöggel

kucg.korea.ac.kr
a fix pontot az origóba
mozgattuk
Fordította: Völgyi Beatrix
Tetszőleges tengely körüli
forgatás (3/6)
Grafika
Forgatási sorrend

Határozzuk meg x-t és y -t

A szögek iránya és ezek cosinusai
 x2   y2   z2  1
cos x   x , cos y   y , cos z   z
cos2  x  cos2  y  cos2  z  1
kucg.korea.ac.kr
szögek iránya
Fordította: Völgyi Beatrix
Tetszőleges tengely körüli
forgatás (4/6)

Grafika
Határozzuk meg x-t és y -t (folyt.)

Vetítsük le az egyenest az y=0 síkra

Nézzük meg az egyenes vetületét (a forgatás előtt) az x=0
síkon
d   y2   z2
0
1
0  / d
z
Rx  x   
0  y / d

0
0
kucg.korea.ac.kr
0
 y / d
z / d
0
0
0
0

1
x tengely körüli forgatás
számolása
Fordította: Völgyi Beatrix
Tetszőleges tengely körüli
forgatás (5/6)

Grafika
Határozzuk meg x-t és y -t (folyt.)

Vetítsük az egyenest a z tengelyre


Forgatás az y tengely körül
figyelem!!! – órajárással megegyező szög
 
Ry  y
d
0

 x

0
0  x
1
0
0
d
0
0
0
0
0

1
y tengely körüli forgatás
számolása
kucg.korea.ac.kr
Fordította: Völgyi Beatrix
Tetszőleges tengely körüli
forgatás (6/6)

Grafika
Végül konkatenáljuk a három mátrixot
M  T p 0 Rx   x Ry   y Rz  Ry  y Rx  x T  p 0 
R  Rx   x Ry   y Rz  Ry  y Rx  x 
M  T p 0 RT  p 0 

Feladat) Forgass egy tárgyat egy, az origón
átmenő egyenes körül 45°-kal
kucg.korea.ac.kr
Fordította: Völgyi Beatrix
Kocka forgatás (1/2)
Grafika
glutDisplayFunc(display);
glutIdleFunc(spinCube);
glutMouseFunc(mouse);
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT |
glLoadIdentity();
glRotatef(theta[0], 1.0, 0.0,
glRotatef(theta[1], 0.0, 1.0,
glRotatef(theta[2], 0.0, 0.0,
colorcube();
glutSwapBuffers();
}
GL_DEPTH_BUFFER_BIT);
0.0);
0.0);
1.0);
void mouse(int btn, int state, int x, int y)
{
if(btn==GLUT_LEFT_BUTTON && state==GLUT_DOWN) axis=0;
if(btn==GLUT_MIDDLE_BUTTON && state==GLUT_DOWN) axis=1;
if(btn==GLUT_RIGHT_BUTTON && state==GLUT_DOWN) axis=2;
}
kucg.korea.ac.kr
Fordította: Völgyi Beatrix
Kocka forgatás (2/2)
Grafika
void spinCube(void)
{
theta[axis] += 2.0;
if( theta[axis] > 360.0 ) theta[axis] -= 360.0;
glutPostRedisplay();
}
void mykey(char key, int mousex, int mousey)
{
if( key == ‘q’ || key == ‘Q’ ) exit();
}
kucg.korea.ac.kr
Fordította: Völgyi Beatrix
Kocka forgatás (2/2)
Grafika
void spinCube(void)
{
theta[axis] += 2.0;
if( theta[axis] > 360.0 ) theta[axis] -= 360.0;
glutPostRedisplay();
}
void mykey(char key, int mousex, int mousey)
{
if( key == ‘q’ || key == ‘Q’ ) exit();
}

glPushMatrix( ), glPopMatrix( )

hajtuk végre egy transzformációt és aztán térjünk
vissza a test eredeti állapotába glPushMatrix();

feladat) példatranszformáció
kucg.korea.ac.kr
glTranslatef(.....);
glRotatef(.....);
glScalef(.....);
/* draw object here */
glPopMatrix();
Fordította: Völgyi Beatrix
Virtual Trackball (1/3)
Grafika

Használjuk az egér helyzetét, hogy
leellenőrizzük a forgatást a 2 tengely körül
 Igazolásként forgassuk a tárgyat folyamatosan
trackball frame
kucg.korea.ac.kr
Fordította: Völgyi Beatrix
Virtual Trackball (2/3)
Grafika

Forgatás virtual trackball-lal

Vetítsük le a trackball pozícióját a síkra
x y z r
2
y r x z
2
2
2
2
kucg.korea.ac.kr
2
2
Fordította: Völgyi Beatrix
Virtual Trackball (3/3)
Grafika

Forgatás virtual trackball-lal (folyt.)

határozzuk meg a sík írányát
n  p1  p 2

forgásszög
  cos p1  p 2 
1

Kvaterniók
kucg.korea.ac.kr

n
Fordította: Völgyi Beatrix
Komplex számok (1/3)
Grafika

Valós rész + képzetes rész:
z  x, y 
Képzetes
tengely
x  Rez , y  Imz 

Összeadás és kivonás

Számmal való szorzás

Szorzás
z  x  iy
z
y
x1, y1   x2 , y2   x1  x2 , y1  y2 
Valós
tengely
x
k x1 , y1   kx1 , ky1 
x1, y1 x2 , y2   x1x2  y1 y2 , x1 y2  x2 y1 
kucg.korea.ac.kr
Fordította: Völgyi Beatrix
Komplex számok (2/3)
Grafika

Képzetes egység: i  0, 1
i 2  0, 10, 1   1, 0
i  1

Konjugált
z  x  iy

z  x  iy
Abszolút érték
z  zz  x 2  y 2

Osztás
z1 z1 z2 x1 , y1 x2 ,  y2   x1 x2  y1 y2 x2 y1  x1 y2 



  2
, 2
2
2
2
2
z2 z2 z2
x2  y2
x2  y2 
 x2  y2
kucg.korea.ac.kr
Fordította: Völgyi Beatrix
Komplex számok (3/3)
Grafika

Polár koordinátákkal való reprezentáció

Euler-formula

z  r cos  i sin  
e  cos   i sin 
i
z  re
Szorzás és osztás
n-edik gyök
n
i 1  2 
,
z=(x, y)
r
i
z1 z2  r1r2e

Képzetes
tengely
θ
Valós
tengely
z1 r1 i 1  2 
 e
z2 r2
    2k 
   2k 
z  r cos
  i sin 
, k  0, 1, 2, , n  1
 n 
  n 
n
kucg.korea.ac.kr
Fordította: Völgyi Beatrix
Kvaterniók (1/2)
Grafika

Egy valós rész + 3 képzetes rész
q  s  ia  jb  kc

Tulajdonságai: i 2  j 2  k 2  1
ij   ji  k
jk   kj  i
ki  ik  j

Összeadás és skaláris szorzás
q1  q2  s1  s2   ia1  a2   jb1  b2   k c1  c2 
dq1  s1d  ia1d  jb1d  kc1d
kucg.korea.ac.kr
Fordította: Völgyi Beatrix
Kvaterniók (2/2)
Grafika

Átírás rendezett számpárba
q  s, v 

skalár ‘s’ + vektor “v = (a, b, c)”

Összeadás:
 Szorzás
q1  q2  s1  s2 , v1  v 2 
q1q2  s1s2  v1  v 2 , s1v 2  s2 v1  v1  v 2 

Nagyság

Inverz
q  s  vv
2
1
q 
1
q
kucg.korea.ac.kr
2
2
s, v 
qq 1  q 1q  1, 0
Fordította: Völgyi Beatrix
Kvaterniók és 3D forgatás
Grafika

3D pont (α, β, γ)

egy egység kvaternió q  s, a, b, c  konjugáltja
q  s,  a,  b,  c 
q  0,  ,  ,   q  0,  ,  ,  


Forgassuk (α, β, γ) pontot 2θ°-kal a (ux, uy, uz)
irányvektorú tengely körül
q  cos , sin  ux , u y , uz 
Rq egy (ux, uy, uz) körüli 2θ°-os forgatás
Rq  p   q  p  q
kucg.korea.ac.kr
Fordította: Völgyi Beatrix
Forgatás kvaternióval (1/2)
Grafika

Tetszőleges tengely körüli forgatás




válasszunk egy egységkvaterniót (u: egységvektor)


s  cos , v  u sin  a, b, c 
2
2
alakítsunk át egy tetszőleges P pontot kvaternióvá
(p = (x, y, z))
P  0, p
végezzük el a kvaternió műveletet (q-1=(s, –v))
P  qPq 1
állítsuk elő az új kvaterniót
P  0, p
p  s 2p  vp  v   2sv  p  v  v  p 
kucg.korea.ac.kr
Fordította: Völgyi Beatrix
Forgatás kvaternióval (2/2)
Grafika

A kvaterniószorzás segítségével megkapjuk a
forgatás mátrixát
1  2b 2  2c 2
2ab  2sc
2ac  2sb 


2
2
M R     2ab  2sc 1  2a  2c
2bc  2sa 
2
2
 2ac  2sb
2
bc

2
sa
1

2
a

2
b


 R x   x R y   y R z  R y  y R x  x 

Az eltolást is belevéve
R   T M R  T
1
kucg.korea.ac.kr
Fordította: Völgyi Beatrix
Példa
Grafika

z tengely körüli forgatás




vegyük az egységkvaterniót : s  cos , v  0, 0, 1sin
2
2
Helyettesítsük be a=b=0-t, c=sin(θ/2)-t a mátrixba:
 


2
1

2
sin

2
cos
sin
0

2
2
2 


 
2
M R    2 cos sin
1  2 sin
0
2
2
2



2
0
0
1
1

2
sin
 cos 


2
 
2 cos sin  sin 
cos   sin  0
2
2


  sin  cos  0
 0
0
1
kucg.korea.ac.kr
Fordította: Völgyi Beatrix