Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Transzformációk kucg.korea.ac.kr.

Hasonló előadás


Az előadások a következő témára: "Transzformációk kucg.korea.ac.kr."— Előadás másolata:

1 Transzformációk kucg.korea.ac.kr

2 Tartalom Affin transzformációk Transzformációk homogén koordinátákkal
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

3 transzformációs függvény
Transzformációk Vegyünk egy pontot (vagy vektort) képezzük le egy másik pontba (vagy vektorba) P Q u v T R 4D oszlop mátrix homogén koordináták transzformációs függvény kucg.korea.ac.kr

4 Affin transzformáció (1/2)
Linearitás – lineáris függvény Lineáris transzformáció rendeljünk egy ponthoz (vagy vektorhoz) egy másik pontot (vagy vektort) 44 mátrix vektor pont kucg.korea.ac.kr

5 Affin transzformáció (2/2)
Lineáris transzformáció (folyt) egyenestartó – egyenest egyenesbe képez  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 homogén koordináta affin transzformáció kucg.korea.ac.kr

6 (a) tárgy az eredeti pozícióban
Eltolás 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 kucg.korea.ac.kr

7 Forgatás (1/2) Egyszerű példa 2D forgatásra kucg.korea.ac.kr

8 Forgatás (1/2) Egyszerű példa 2D forgatásra kucg.korea.ac.kr

9 Forgatás (1/2) Egyszerű példa 2D forgatásra kucg.korea.ac.kr

10 (a) fix pont körüli forgatás
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 (b) 3D forgatás kucg.korea.ac.kr

11 Merev test transzformációk
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

12 Skálázás (1/2) 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 Affin, nem merev test transzformációk affin transzformációk: eltolás, forgatás, skálázás, nyírás nemegyenletes egyenletes kucg.korea.ac.kr

13 Skálázás (2/2) Szükséges Tükrözés – negatív skálázási együttható
fixpont a skálázás iránya skálázási együttható nagyítás (α>1) vagy kicsinyítés (0≤α<1) Tükrözés – negatív skálázási együttható skálázás eredménye tükrözés kucg.korea.ac.kr

14 Transzformációk homogén koordinátákkal
Megvalósítás homogén koordinátákkal Affin transzformációk – 44 mátrix kucg.korea.ac.kr

15 ? Eltolás P ponthoz rendeljük a d távolságban lévő P’-t
eltolás mátrixa kucg.korea.ac.kr

16 Eltolás P ponthoz rendeljük a d távolságban lévő P’-t kucg.korea.ac.kr

17 ? Eltolás P ponthoz rendeljük a d távolságban lévő P’-t
Az eltolás mátrixának inverze ? kucg.korea.ac.kr

18 Eltolás P ponthoz rendeljük a d távolságban lévő P’-t
Az eltolás mátrixának inverze kucg.korea.ac.kr

19 ? Skálázás A skálázás mátrixa, ha a fixpontja az origó
kucg.korea.ac.kr

20 Skálázás A skálázás mátrixa, ha a fixpontja az origó kucg.korea.ac.kr

21 ? Skálázás A skálázás mátrixa, ha a fixpontja az origó
A skálázás mátrixának inverze ? kucg.korea.ac.kr

22 Skálázás A skálázás mátrixa, ha a fixpontja az origó
A skálázás mátrixának inverze kucg.korea.ac.kr

23 ? Forgatás (1/2) Forgatás az origó körül forgatás mátrixa
kucg.korea.ac.kr

24 Forgatás (1/2) Forgatás az origó körül ? kucg.korea.ac.kr

25 Forgatás (1/2) Forgatás az origó körül ? kucg.korea.ac.kr

26 Forgatás (1/2) Forgatás az origó körül kucg.korea.ac.kr

27 Forgatás (2/2) A forgatás mátrixának inverze ? kucg.korea.ac.kr

28 Forgatás (2/2) A forgatás mátrixának inverze : ortogonális mátrix
kucg.korea.ac.kr

29 tárgy nyírása az x tengely irányában
Még egy affin transzformáció tárgy nyírása az x tengely irányában ? kucg.korea.ac.kr

30 tárgy nyírása az x tengely irányában
Még egy affin transzformáció tárgy nyírása az x tengely irányában kucg.korea.ac.kr

31 ? Nyírás (2/2) Nyírás az x tengely irányában nyírás mátrixa
kucg.korea.ac.kr

32 Nyírás (2/2) Nyírás az x tengely irányában kucg.korea.ac.kr

33 ? Nyírás (2/2) Nyírás az x tengely irányában Nyírás mátrixának inverze
kucg.korea.ac.kr

34 Nyírás (2/2) Nyírás az x tengely irányában Nyírás mátrixának inverze
kucg.korea.ac.kr

35 Transzfromációk konkatenációja
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 M p q CBA kucg.korea.ac.kr

36 Pont körüli forgatás (1/3)
Fixpont: pf jelölje Rz() a forgatást Kocka forgatása a középpontja körül kucg.korea.ac.kr

37 Pont körüli forgatás (2/3)
transzformációk sorozata kucg.korea.ac.kr

38 Pont körüli forgatás (3/3)
kucg.korea.ac.kr

39 Általános forgatás (1/2)
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

40 Általános forgatás (2/2)
kucg.korea.ac.kr

41 Példa transzformációra (1/2)
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

42 Példa transzformációra(2/2)
kucg.korea.ac.kr

43 Tetszőleges tengely körüli forgatás (1/6)
Szükséges fixpont: p0 elforgatás szöge: θ forgástengely : vektor p2-p1 kocka forgatása tetszőleges tengely mentén kucg.korea.ac.kr

44 Tetszőleges tengely körüli forgatás (2/6)
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 meg- feleltethető 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 a fix pontot az origóba mozgattuk kucg.korea.ac.kr

45 Tetszőleges tengely körüli forgatás (3/6)
Forgatási sorrend Határozzuk meg x-t és y -t A szögek iránya és ezek cosinusai szögek iránya kucg.korea.ac.kr

46 Tetszőleges tengely körüli forgatás (4/6)
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 x tengely körüli forgatás számolása kucg.korea.ac.kr

47 Tetszőleges tengely körüli forgatás (5/6)
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 y tengely körüli forgatás számolása kucg.korea.ac.kr

48 Tetszőleges tengely körüli forgatás (6/6)
Végül konkatenáljuk a három mátrixot Feladat) Forgass egy tárgyat egy, az origón átmenő egyenes körül 45°-kal kucg.korea.ac.kr

49 Kocka forgatás (1/2) glutDisplayFunc(display); glutIdleFunc(spinCube);
glutMouseFunc(mouse); void display(void) { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLoadIdentity(); glRotatef(theta[0], 1.0, 0.0, 0.0); glRotatef(theta[1], 0.0, 1.0, 0.0); glRotatef(theta[2], 0.0, 0.0, 1.0); colorcube(); glutSwapBuffers(); } 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

50 Kocka forgatás (2/2) void spinCube(void) { theta[axis] += 2.0;
if( theta[axis] > ) theta[axis] -= 360.0; glutPostRedisplay(); } void mykey(char key, int mousex, int mousey) { if( key == ‘q’ || key == ‘Q’ ) exit(); } kucg.korea.ac.kr

51 Kocka forgatás (2/2) glPushMatrix( ), glPopMatrix( )
void spinCube(void) { theta[axis] += 2.0; if( theta[axis] > ) 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 feladat) példatranszformáció glPushMatrix(); glTranslatef(.....); glRotatef(.....); glScalef(.....); /* draw object here */ glPopMatrix(); kucg.korea.ac.kr

52 Virtual Trackball (1/3) 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

53 Virtual Trackball (2/3) Forgatás virtual trackball-lal
Vetítsük le a trackball pozícióját a síkra kucg.korea.ac.kr

54 Virtual Trackball (3/3) Forgatás virtual trackball-lal (folyt.)
határozzuk meg a sík írányát forgásszög Kvaterniók kucg.korea.ac.kr

55 Komplex számok (1/3) Valós rész + képzetes rész: Összeadás és kivonás
Számmal való szorzás Szorzás y x z Képzetes tengely Valós tengely kucg.korea.ac.kr

56 Komplex számok (2/3) Képzetes egység: Konjugált Osztás Abszolút érték
kucg.korea.ac.kr

57 Komplex számok (3/3) Polár koordinátákkal való reprezentáció
Euler-formula Szorzás és osztás n-edik gyök r θ z=(x, y) Képzetes tengely Valós kucg.korea.ac.kr

58 Kvaterniók (1/2) Egy valós rész + 3 képzetes rész Tulajdonságai:
Összeadás és skaláris szorzás kucg.korea.ac.kr

59 Kvaterniók (2/2) Átírás rendezett számpárba Összeadás: Szorzás Nagyság
skalár ‘s’ + vektor “v = (a, b, c)” Összeadás: Szorzás Nagyság Inverz kucg.korea.ac.kr

60 Kvaterniók és 3D forgatás
3D pont (α, β, γ) egy egység kvaternió konjugáltja Rq egy (ux, uy, uz) körüli 2θ°-os forgatás Forgassuk (α, β, γ) pontot 2θ°-kal a (ux, uy, uz) irányvektorú tengely körül kucg.korea.ac.kr

61 Forgatás kvaternióval (1/2)
Tetszőleges tengely körüli forgatás válasszunk egy egységkvaterniót (u: egységvektor) alakítsunk át egy tetszőleges P pontot kvaternióvá (p = (x, y, z)) végezzük el a kvaternió műveletet (q-1=(s, –v)) állítsuk elő az új kvaterniót kucg.korea.ac.kr

62 Forgatás kvaternióval (2/2)
A kvaterniószorzás segítségével megkapjuk a forgatás mátrixát Az eltolást is belevéve kucg.korea.ac.kr

63 Példa z tengely körüli forgatás vegyük az egységkvaterniót :
Helyettesítsük be a=b=0-t, c=sin(θ/2)-t a mátrixba: kucg.korea.ac.kr


Letölteni ppt "Transzformációk kucg.korea.ac.kr."

Hasonló előadás


Google Hirdetések