3D koordináta-rendszerek

Hasonló dokumentumok
Alkalmazott Informatikai Tanszék SZÁMÍTÓGÉP-PROGRAMOZÁS dr.dudás László 22./0. 3D grafika programozása OpenGL támogatással Transzformációk

OpenGL és a mátrixok

Transzformációk, amelyek n-dimenziós objektumokat kisebb dimenziós terekbe visznek át. Pl. 3D 2D

x = cos αx sin αy y = sin αx + cos αy 2. Mi a X/Y/Z tengely körüli forgatás transzformációs mátrixa 3D-ben?

Térbeli transzformációk, a tér leképezése síkra

Infobionika ROBOTIKA. X. Előadás. Robot manipulátorok II. Direkt és inverz kinematika. Készült a HEFOP P /1.0 projekt keretében

Transzformációk síkon, térben

Számítási feladatok a Számítógépi geometria órához

Tartalom. Nevezetes affin transzformációk. Valasek Gábor 2016/2017. tavaszi félév

Robotika. Kinematika. Magyar Attila

Valasek Gábor Informatikai Kar. 2016/2017. tavaszi félév

Hajder Levente 2017/2018. II. félév

Lin.Alg.Zh.1 feladatok

LINEÁRIS ALGEBRA. matematika alapszak. Euklideszi terek. SZTE Bolyai Intézet, őszi félév. Euklideszi terek LINEÁRIS ALGEBRA 1 / 40

Testek. 16. Legyen z = 3 + 4i, w = 3 + i. Végezzük el az alábbi. a) (2 4), Z 5, b) (1, 0, 0, 1, 1) (1, 1, 1, 1, 0), Z 5 2.

Vektorterek. =a gyakorlatokon megoldásra ajánlott

Transzformációk. Szécsi László

Transzformációk. Grafikus játékok fejlesztése Szécsi László t05-transform

Számítógépes geometria

Lin.Alg.Zh.1 feladatok

Lineáris leképezések. Wettl Ferenc március 9. Wettl Ferenc Lineáris leképezések március 9. 1 / 31

Matematika (mesterképzés)

VIK A2 Matematika - BOSCH, Hatvan, 3. Gyakorlati anyag. Mátrix rangja

Összeállította: dr. Leitold Adrien egyetemi docens

1. zárthelyi,

Számítógépes Grafika mintafeladatok

Geometria II gyakorlatok

Hajder Levente 2018/2019. II. félév

Hajder Levente 2014/2015. tavaszi félév

Panorámakép készítése

Az ipari robotok definíciója

Sajátértékek és sajátvektorok. mf1n1a06- mf1n2a06 Csabai István

Mátrixok 2017 Mátrixok

Vektorgeometria (1) First Prev Next Last Go Back Full Screen Close Quit

Számítógépes Grafika mintafeladatok

Haladó lineáris algebra

Lineáris algebra zárthelyi dolgozat javítókulcs, Informatika I márc.11. A csoport

9. Írjuk fel annak a síknak az egyenletét, amely átmegy az M 0(1, 2, 3) ponton és. egyenessel;

Lineáris algebra mérnököknek

= Y y 0. = Z z 0. u 1. = Z z 1 z 2 z 1. = Y y 1 y 2 y 1

Infobionika ROBOTIKA. IX. Előadás. Robot manipulátorok I. Alapfogalmak. Készült a HEFOP P /1.0 projekt keretében

Tárgy. Forgóasztal. Lézer. Kamera 3D REKONSTRUKCIÓ LÉZERES LETAPOGATÁSSAL

2014/2015. tavaszi félév

5. előadás. Skaláris szorzás

FEJLETT GRAFIKAI ALGORITMUSOK

Geometria II gyakorlatok

Az egyenlőtlenség mindkét oldalát szorozzuk meg 4 16-al:

Geometriai transzformációk

Képfeldolgozás. 1. el adás. A képfeldolgozás m veletei. Mechatronikai mérnök szak BME, 2008

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Geometria III.

8. előadás. Kúpszeletek

Eredmények, objektumok grafikus megjelenítése 3D felületek rajzoló függvényei

Diszkrét matematika I. gyakorlat

17. előadás: Vektorok a térben

1. Lineáris transzformáció

Keresztmetszet másodrendű nyomatékainak meghatározása

Mechatronika segédlet 3. gyakorlat

Az egyenes és a sík analitikus geometriája

Vektorok és koordinátageometria

Vektorok, mátrixok, lineáris egyenletrendszerek

21. évfolyam 5. szám. Fizika InfoRmatika Kémia Alapok. Kiadó. Levélcím Cluj, C. P. 1/140

A játékfejlesztés több területből áll. A kódolás csupán egy része a munkáknak.

DISZKRÉT MATEMATIKA: STRUKTÚRÁK Előadáson mutatott példa: Bércesné Novák Ágnes

KOORDINÁTA-GEOMETRIA

1. Mátrixösszeadás és skalárral szorzás

Lengyelné Dr. Szilágyi Szilvia április 7.

EGY ABLAK - GEOMETRIAI PROBLÉMA

Gauss-eliminációval, Cholesky felbontás, QR felbontás

Matematika A2 vizsga mgeoldása június 4.

1. Komplex számok. x 2 = 1 és x 2 + x + 1 = 0. egyenletek megoldását számnak tekinthessük:

1. Geometria a komplex számsíkon

Bevezetés. Transzformáció

Matematika 11 Koordináta geometria. matematika és fizika szakos középiskolai tanár. > o < szeptember 27.

1. Bázistranszformáció

és n oszlopból áll, akkor m n-es mátrixról beszélünk. (Az oszlopok száma a mátrix vízszintes mérete, a sorok 2 3-as, a ij..

Irodalom. (a) A T, B T, (b) A + B, C + D, D C, (c) 3A, (d) AD, DA, B T A, 1 2 B = 1 C = A = 1 0 D = (a) 1 1 3, B T = = ( ) ; A T = 1 0

Matematikai geodéziai számítások 10.

BEVEZETÉS A SZÁMÍTÁSELMÉLETBE 1

MateFIZIKA: Pörgés, forgás, csavarodás (Vektorok és axiálvektorok a fizikában)

12. előadás. Egyenletrendszerek, mátrixok. Dr. Szörényi Miklós, Dr. Kallós Gábor

1. feladatsor Komplex számok

Lineáris egyenletrendszerek

1. Algebrai alapok: Melyek műveletek az alábbiak közül?

2. ELŐADÁS. Transzformációk Egyszerű alakzatok

Klár Gergely 2010/2011. tavaszi félév

Hajder Levente 2017/2018. II. félév

Gyakorló feladatok I.

Budapesti Műszaki Főiskola, Neumann János Informatikai Kar. Vektorok. Fodor János

Látható felszín algoritmusok

Lineáris algebra mérnököknek

Raszter georeferálás QGIS-ben Összeállította: dr. Siki Zoltán verzióra aktualizálta: Jáky András

Alkalmazott algebra. Lineáris leképezések EIC. Wettl Ferenc ALGEBRA TANSZÉK BMETE90MX57 (FELSŐBB MATEMATIKA INFORMATIKUSOKNAK )

1. Transzformációk mátrixa

Relációk Függvények. A diákon megjelenő szövegek és képek csak a szerző (Kocsis Imre, DE MFK) engedélyével használhatók fel!

x = 1 = ı (imaginárius egység), illetve x 12 = 1 ± 1 4 2

RE 1. Relációk Függvények. A diákon megjelenő szövegek és képek csak a szerző (Kocsis Imre, DE MFK) engedélyével használhatók fel!

Plakátok, részecskerendszerek. Szécsi László

1. A komplex számok ábrázolása

Nagy András. Feladatok a koordináta-geometria, egyenesek témaköréhez 11. osztály 2010.

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Megoldások

Átírás:

3D koordináta-rendszerek z z y x y x y balkezes bal-sodrású x jobbkezes jobb-sodrású z

3D transzformációk - homogén koordináták (x, y, z) megadása homogén koordinátákkal: (x, y, z, 1) (x, y, z, w) = (x, y, z, w ), ha van olyan α, hogy x = α x, y = α y, z = α z, és w = α w Ha w 0: (x/w, y/w, z/w, 1) a szokásos jelölés. Ha w = 0: (x, y, z, 0) végtelen távoli pont. Kapcsolat: (x, y, z) - egyenes a 4-dimenziós térben, aminek a w = 1 3D térrel való metszete homogén koordináta.

3D eltolás mert 1 0 0 d x T (d x, d y, d z ) = 0 1 0 d y 0 0 1 d z 0 0 0 1 x x + d x T (d x, d y, d z ) y z = y + d y z + d z 1 1 T 1 (d x, d y, d z ) = T ( d x, d y, d z )

3D skálázás (kicsinyítés / nagyítás) mert s x 0 0 0 S(s x, s y, s z ) = 0 s y 0 0 0 0 s z 0 0 0 0 1 x s x x S(s x, s y, s z ) y z = s y y s z z 1 1 1 s x 0 0 0 S 1 1 0 (s x, s y, s z ) = s y 0 0 1 0 0 s z 0 0 0 0 1

3D forgatások A z-tengely körül: Az x-tengely körül: Az y-tengely körül: cos ξ sin ξ 0 0 R z (ξ) = sin ξ cos ξ 0 0 0 0 1 0 0 0 0 1 1 0 0 0 R x (ξ) = 0 cos ξ sin ξ 0 0 sin ξ cos ξ 0 0 0 0 1 cos ξ sin ξ 0 0 R y (ξ) = 0 1 0 0 sin ξ cos ξ 0 0 0 0 0 1

3D nyírás mert 1 0 sh x 0 SH xy (sh x, sh y ) = 0 1 sh y 0 0 0 1 0 0 0 0 1 x x + sh x z SH xy (sh x, sh y ) y z = y + sh y z z 1 1

3D kompozíció-mátrix A legáltalánosabb kompozíció alakja: t 11 t 12 t 13 t 14 M = t 21 t 22 t 23 t 24 t 31 t 32 t 33 t 34 0 0 0 1 A mátrix szorzáshoz képes most is meg lehet takarítani műveleteket.

3D síkok transzformációi A sí egyenlete: Ax + By + Cz + D = 0 Legyen P a sík egy tetszőleges pontja! x A Ha P = y z, akkor N = B C a sík normálisa, hiszen 1 D N T P = 0. Ha a sík pontjait M-mel transzformáljuk, akkor hogyan transzformálódik a sík normálisa?

3D síkok transzformációi Legyen P egy tetszőleges pont a síkban! Ekkor N T P = 0. Melyik az a Q mátrix, amelyre (QN) T (MP ) = 0? Ha M 1 létezik, akkor ((M 1 ) T N) T (MP ) = N T ((M 1 ) T ) T MP = N T P = 0 Q = (M 1 ) T N = (M 1 ) T N Megyjegyzés: Nem biztos, hogy M 1 létezik! Pl.: vetítés esetén)

3D koordináta-rendszerek váltása - 1 P (j) : a P pont a j koordináta-rendszerben. M i j : transzformáció, amely a j-koordináta-rendszerbeli pontokat az i koordináta-rendszerbe viszi át. Ekkor P (i) = M i j P (j) Ha P (j) = M j k P (k) akkor ahol P (i) = M i j P (j) = M i j (M j k P (k) ) = M i k P (k) M i k = M i j M j k

3D koordináta-rendszerek váltása - 2 Továbbá M i j = M 1 j i Pl.: a) Ha M i j = T (t x, t y ), akkor M j i = T ( t x, t y ). b) Ha R jobb-, L pedig bal-kezes koordináta-rendszer azonos origóval és párhuzamos tengelyekkel, akkor 1 0 0 0 M R L = M 1 L R = 0 1 0 0 0 0 1 0 0 0 0 1

3D transzformációk alakja (Különböző koordináta-rendszerekben) P ( j): pont a j-koordináta-rendszerben Q (j) : transzformáció a j-koordináta-rendszerben Melyik az a Q (i), amelyre Mivel P (i) = M i j P (j), ezért Q (i) P (i) = M i j Q (j) P (j)? Q (i) M i j P (j) = M i j Q (j) P (j) Q (i) M i j = M i j Q (j) Q (i) = M i j Q (j) M 1 i j

OpenGL

Mátrix műveletek OpenGL-ben oszlopfolytonosan tároljuk a mátrixokat: Az egység mátrix: GLfloatM[] = { 1.0, 0.0, 0.0, 0.0, a 1 a 5 a 9 a 13 0.0, 1.0, 0.0, 0.0, a 2 a 6 a 10 a 14 0.0, 0.0, 1.0, 0.0, a 3 a 7 a 11 a 15 0.0, 0.0, 0.0, 1.0} a 4 a 8 a 12 a 16 Új aktuális mátrix betöltése: void glloadmatrix{fd}(t M[16]); glmatrixmode(gl MODELVIEW); // típus glloadmatrix(m); // betöltés

Mátrix műveletek Az aktuális mátrix legyen az egységmátrix: void glloadidentity(void); Az aktuális mátrix szorzása: void glmultmatrix{fd}(t M[16]); Pl.: GLf loatm[] = { 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0} glmatrixmode(gl MODELVIEW); glmultmatrix(m); A szorzat lesz az új aktuális mátrix.

Koordináta transzformációk Nézeti (Viewing) a néző (kamera) helyének a megadása Modell (Modeling) az objektumok (modell) mozgatása Modell-nézet (ModelView) a nézeti és a modell transzformációk együtt Vetítés (Projection) a nézet vágása és látótérbe méretezése Ablak az eredmény ablakra való leképezése

Nézeti koordináták A megfigyelő nézőpontja kezdetben (0, 0, 0). A megfigyelő a z tengely negatív irányába néz. Virtuálisan rögzített koordináta rendszer y y -x -z -x x z x Ahogy a megfigyelő látja a modellt -y -y Így látnánk oldalról a megfigyelőt a pozíciójának a z tengely irányába történő elmozdítása után

Nézeti koordináták A nézeti koordináta rendszer elforgatása 45 -kal az óramutató járásával megegyező irányban szem koordináták y y' 45 transzfomált koordináta-rendszer x transzformált téglalap x'

Nézeti (Viewing) transzformáció Ez hajtódik végre először, ezt kell legelőször definiálni Nézőpont meghatározása: Kezdeti nézőpont (0, 0, 0) glulookat paranccsal módosítható

Nézeti (Viewing) transzformáció void glulookat( GLdouble eyex, GLdouble eyey, GLdouble eyez, GLdouble centerx, GLdouble centery, GLdouble centerz, GLdouble upx, GLdouble upy, GLdouble upz) (eyex, eyey, eyez) a szem pozíciója (centerx, centery, centerz) referenciapont, ahová a szem néz (upx, upy, upz) felfelé mutató vektor (VUP) Pl.: glulookat(0.0,0.0,2.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);

Nézeti (Viewing) transzformáció A glulookat eljárás kiszámítja a megadott nézeti transzformáció inverzét, majd az aktuális mátrixot megszorozza a kapott inverz transzformációs mátrixszal. Az aktuális mátrix mód a GL MODELVIEW legyen!

Modell (Modelling) transzformáció eltolás forgatás A modell vagy egy részének a transzformálásra használjuk. skálázás A csúcspont (vertex) koordinátákat transzformálja.

Modell-nézeti dualitás A nézeti és a modell transzformációk duálisak, ezért elegendő csak a modell koordináta rendszert transzformálni. nézeti koordináta rendszer mozgatás modell koordináta rendszer mozgatás

Modell transzformációk glmatrixmode(glmodelview); void glrotate{fd}(t a, T x, T y, T z); a: forgatás fokban (x,y,z): forgatási tengely pl. 45 fokos forgatás az x-tengely körül: glrotated(45, 1.0, 0.0, 0.0, 0.0) void gltranslate{fd}(t x, T y, T z); (x,y,z): az eltolás vektora pl. x-tengely mentén 50 egységgel való eltolás gltranslated(50, 0,0); void glscale{fd}(t x, T y, T z); (x,y,z) skálázás mértéke a tengelyek mentén pl. glscaled(0.5, 0.5, 0.5) 0.5-szörös uniform nagyítás