Bevezetés a számítógépi grafikába Bevezetés: A Számítógépi grafika tárgya Képek raszteres kódolása Képek geometrikus kódolása, a geometrikus grafika alapjai Koordináta-rendszerek és transzformációk Vetületi ábrázolások A 3D grafikai alapjai: térbeli alakzatok és színterek képének előállítása Valószerű képek előállítása Egyebek
4. Koordináta-rendszerek és transzformációk 4.1. Koordináta-rendszerek az euklideszi térben 4.2. Homogén koordináták 4.3. Az egyenes és a sík egyenlete 4.4. Affin és projektív transzformációk 4.4.1. Affin transzformációk 4.4.2. Projektív transzformációk
4.4. Affin és projektív transzformációk Miért kellenek az affin- és projektív transzformációk? A grafika transzformációi: - a geometriai modell valószerű átalakításai, és - „valószerű képek” előállítása, vagy - szándékos torzítás (pl. „morphing”) Valószerű képek: a valóságra emlékeztető képek. Geometriai szempontok: pontból pontot, egyenesből egyenest, síkból síkot kapjunk és ha egy pont rajta van egy síkon, a képen is így legyen!
Kollineációk Kollineációk: a tér önmagára való, egy-egyértelmű leképezései, amelyek pont-, egyenes-, sík- és illeszkedést tartók. En kollineációi: az affin transzformációk csoportja (a kibővített térben ideális elemeket ideálisakra). Pn (Hn) kollineációi: a projektív transzformációk csoportja. A tér egy közönséges síkját az ideális síkra képezi le, az ideális síkot egy közönséges síkra. Affinitások a projekivitások alcsoportja.
4.4.1. Affin transzformációk Affin transzformációk: geometria és lineáris algebra Az affin transzformációk mátrix alakja Egyszerű affinitások: eltolás, forgatás, léptékezés, nyírás, báziscsere és tükrözések Az affin transzformációk geometriai tulajdonságai és osztályozása
Affin transzformációk Geometria: Az euklideszi tér (-sík) egyenest tartó, egy- egyértelmű transzformációi, pont-, egyenes-, sík- és illeszkedést tartó. Lineáris algebra: az n-dimenziós affin tér lineáris leképezései: x’ = a11x+a12y+a13z+a14; P’=A·P [+d?] y’ = a21x+a22y+a23z+a24 z’ = a31x+a32y+a33z+a34 Az euklideszi tér analitikus geometriája, koordináta-geometriája Affin transzformációk számolása lineáris transzformációval
Affin transzformációk (2) Például: eltolás, forgatás, tükrözés, stb. Szóhasználat: affin transzformáció – affinitás Reguláris affinitások (det A 0) En En ; a térben: E3 E3, a síkban: E2 E2 Nem reguláris: leképezés (vetítés) egy síkra, vagy egyenesre Szóhasználat: transzformáció, leképezés Pont-transzformáció: alakzatok (pontjainak) transzformációja Koordináta-rendszer transzformációja: áttérés új KR-re A tér leképezése egy másik térre (pl. VKR KKR, VKR SZKR)
Affin transzformáció mátrix-szorzással (1) Adott: egy lineáris transzformáció mátrixa: A33 és egy d eltolás-vektor X’ = A33 X + d = (a11 a12 a13) (x) + (d1) = (x’) = X’ |a21 a22 a23| |y| |d2| |y’| (a31 a32 a33) (z) (d3) (z’) Az eltolás „nem fér bele” a 3x3-as mátrixba
Affin transzformáció mátrix-szorzással (2) Adott: téglalap mátrix: A34; a*4 az eltolás-vektor (az utolsó oszlop) X’ = A33 X + a*4 = (a11 a12 a13) (x) + (a14) = (x’) = X’ |a21 a22 a23| |y| |a24| |y’| (a31 a32 a33) (z) (a34) (z’) A téglalap mátrix-al kényelmetlen dolgozni.
Affin transzformáció mátrix-szorzással (3) Adott: homogén mátrix alak: A44 , X = [x,y,z,1]T X’ = A44 X = (a11 a12 a13 a14 ) (x) = (x’) = X’ |a21 a22 a23 a24 | |y| |y’| |a31 a32 a33 a34 | |z| |z’| ( 0 0 0 1 ) (1) (1) A44 utolsó oszlopa az eltolás-vektor, utolsó sora: (0,0,0,1) Közönséges pontot közönséges pontba visz át, ideális pontot ideálispontba visz át: a tér ideális síkjának képe önmaga.
Egyszerű affinitások: 1. Eltolás x’= x + d1 y’= y + d2 z’ = z + d3 Az eltolások kommutatív csoportja: T(dx,dy,dz)-1 = T(-dx,-dy,-dz) T1(a,b,c) T2(d,e,f) = T(a+d,b+e,c+f) T1(a,b,c) T2(d,e,f) = T2(d,e,f) T1 (a,b,c) T1(0,0,0) = E A koordináta-rendszer (dx,dy,dz) eltolása = a pontok eltolása (-dx,-dy,-dz)-vel az eredeti KR-ben X’ = T44 X (1 0 0 d1) · (x) = (x’) |0 1 0 d2| |y| |y’| |0 0 1 d3| |z| |z’| (0 0 0 1 ) (h) (h)
Pont-tr. – KR-tr. KR -> KR’ a koordináta-rendszer transzformációja: eltolás (dx,dy)-nal X’ = (x-dx, y) Mintha a pontokat tolnánk el (-dx, -dy) -nal KR dx x x’ P KR’ X(x,y)
Egyszerű affinitások: 2. Forgatás a Z tengely körül x’ = x cos a - y sin a y’ = x sin a + ycos a z’ = z; A síkban: f. a kezdőpont (origó) körül: Rz a 3. sor és oszlop nélkül A Z tengely körüli forgatások kommutatív csoportja: Rz1(a) Rz2(b) = Rz(a+b) = Rz2Rz1 a forgatás inverze: Rz(a)-1 = Rz(-a) Ortonormált transzformáció, determinánsa 1. Rz = (co –si 0 0) | si co 0 0| | 0 0 1 0| ( 0 0 0 1) co = cos a si = sin a
Forgatás az X és az Y tengely körül Rx = (1 0 0 0) |0 co –si 0| |0 si co 0| (0 0 0 1) Ry = (co 0 –si 0) |0 1 0 0| |si 0 co 0| ( 0 0 0 1) x’ = x y’ = y cos a - z sin a z’ = y sin a + zcos a illetve: x’= x cos a – z sin a y’= y z’ = x sin a + zcos a Az ugyanazon tengely körüli forgatások kommutatív csoportot alkotnak
Forgatások Origón átmenő, ferde tengely körüli forgatás öt forgatás szorzataként: X’ = ( (Rz-1Rx-1) Ry (RxRz) ) X a Z tengely körül beforgatjuk a ZY síkba, ebben a síkban, az X tengely körül, az Y tengelybe, ekörül végrehajtjuk a kívánt forgatást, végül az első két forgatás fordítottját, fordított sorrendben. Elvileg fölírható hárommal is; de melyik hárommal? Transzformációk megadása geometria jelentésük alapján !!! A tér tetszőleges egyenese körüli forgatás ( T-1 R T ) : az egyenes eltolása a kezdőpontba, ekörül forgatás, majd az eltolás fordítottja.
Forgatás és eltolás egymásutánja Forgatás: R (900) Eltolás: T(dx,dy) Áthelyezés: X’ = (R T) X R T ≠ T R
Áttérés új KR-re: báziscsere A koordináta-rendszer transzformációja. Adottak egy új koordináta-rendszer U, V, W tengelyirányai: u, v, w egységvektorok. X’ = B X B = (ux uy uz 0) x’ = uxx + uyy + uzz |vx vy vz 0| y’ = vxx + vyy + vzz |wx wy wz 0| z’ = wxx + wyy + wzz ( 0 0 0 1) Ha az origót el is toljuk a C pontba: X’ = ( T(-cx,-cy,-cz) B ) X
Egyszerű affinitások: 3. Léptékezés (skálázás) Léptékezés (skálázás) az origóból kiindulva: X’ = S X. S = (sx 0 0 0) x’ = sx x |0 sy 0 0| y’ = sy y |0 0 sz 0| z’ = sz z (0 0 0 1) Determinánsának értéke: sx sy sz ; (egyik sem nulla). Egyenletes (izotrop) léptékezés, ha sx= sy= sz Egyenlőtlen (anizotrop), ha van köztük különböző. A tér C pontjára vonatkozó léptékezés: T(cx,cy,cz)ST(-cx,-cy,-cz) A léptékezések az affinitások kommutatív alcsoportja.
Tükrözés: léptékezés negatív együtthatókkal x’ = -1·x, y’= y, z’ = z : tükrözés az YZ síkra. Tükrözések: S(1,1,1) Ha 1 tényező negatív: tükrözés koordináta-síkra, (det = -1) 2 tényező negatív: tükrözés koordináta tengelyre, (det = +1) 3 tényező negatív: tükrözés a kezdőpontra. (det = -1) Ha a determináns = -1, a tér irányítása megfordul Tükrözés általános helyzetű síkra, tengelyre vagy pontra: X’ = ( M-1 TÜKRÖZÉS M ) X M = mozgatás: eltolások és forgatások
Egyszerű affinitások: 4. Nyírás Egy merev test alakjának változása terhelés hatására. Az „elcsúszó kártyacsomag” Az XZ síkkal párhuzamosan, X irányban, az y összetevővel arányos nyírás: x’ = x+ay; X’ = Nxy X; Nxy = (1 a 0 0) y’ = y |0 1 0 0| z’ = z |0 0 1 0| (0 0 0 1) Nyírás a tengelyek más szereposztásával: más alsó, vagy felső háromszög mátrix
Az affin transzformációk néhány geometriai tulajdonsága A pontok baricentrikus koordinátái affin-invariánsak: ha valamely t-vel R = (1-t) P + t Q, akkor ugyanazzal a t-vel: R’= (1-t) P’ + t Q’ Az egyenesek pontjainak osztóviszonya affin invariáns: (PQR) = PR / RQ; RQ , (P’Q’R’) = (PQR); Egy egyenesen lévő szakaszok hossza ugyanolyan arányban változik: P’Q’/PQ = R’S’/RS. (különböző irányokban a változás aránya különböző lehet) Tetszőleges affin transzformáció mátrixa előállítható: A P = (N S R T ) P alakban
Az affin transzformációk osztályozása Az affin transzformációk csoportot alkotnak Alcsoportja: hasonlósági transzformációk : T R S(s,s,s) Alcsoportja a mozgás transzformációk : T R Mozgások - egybevágósági transzformációk „Másodfajú” egybevágóság: irányítást váltó tükrözések is. Ha det A=0, a tér párhuzamos vetítése egy síkra, vagy egyenesre pl.: egy pont összetevői a tengelyekre való vetítéssel. Az n-dimenziós tér egy affinitását meghatározza n+1 „független” pont és képének megadása, (a térben 4, a síkban 3). „Független”: semelyik 3 sem esik egy egyenesbe.
Affin transzformáció megadása: 4-4 A tér egy affinitását meghatározza 4 független pont és képe. (Az n-dimenziós térben: n+1.) „Független”: semelyik 3 sem esik egy egyenesbe. A44 ( O Ex Ez Ez ) = ( P Q R S ) (a11 a12 a13 a14 ) ( 0 1 0 0 ) = ( px qx rx sx) |a21 a22 a23 a24 | | 0 0 1 0 | | py qy ry sy| |a31 a32 a33 a34 | | 0 0 0 1 | | pz qz rz sz | ( 0 0 0 1 ) ( 1 1 1 1 ) ( 1 1 1 1 ) 12 egyenlet, 12 ismeretlen: aik a14 = px , a24 = py , a34 = pz a11+a14 = qx , a12+a14 = qy , a13+a14 = qz . . .
4.4.2. Projektív transzformációk
Projektív transzformációk - Bevezetés A projektív tér kölcsönösen egyértelmű, egyenest tartó leképezései, amelyek „pont-, egyenes-, sík-, és illeszkedést tartók”. Az affin transzformációk a homogén tér közönséges, euklideszi alterét önmagára képezik le. ? Mit művelnek az affin transzformációk az ideális pontokkal? Válasz: ideális pontot ideális pontba visznek át. ? Milyenek a „valódi projektív transzformációk”, amelyek némelyik közönséges pontból ideális pontot állítanak elő?
Homogén mátrix alakjuk X’ = M44 X = = (m11 m12 m13 m14) (x1) = (m11x1+m12x2+m13x3+m14h) = (x1’) |m21 m22 m23 m24| |x2| |m21x1+m22x2+m23x3+m24h| |x2’| |m31 m32 m33 m34| |x3| |m31x1+m32x2+m33x3+m34h| |x3’| (m41 m42 m43 m44) (h ) (m41x1+m42x2+m43x3+m44h) ( h’ ) X’ (x1’/h’, x2’/h’, x3’/h’,1), ha h’ 0 = ideális pont, ha h’ = 0 h’ = m41x1+m42x2+m43x3+m44h =0 [m41, m42, m43, m44] a transzformáció eltűnő síkja. a pontok homogén alakja: X’ h X ; h 0 a transzformációk homogén alakja: M44 h M44 ; h 0
Egy 2D projektív transzformáció A’= M· A = = ( 1 0 0 ) · (-1) | 0 0 1 | |-1| ( 0 1 0 ) ( 1) = ( -1 ) ~ ( 1 ) | 1 | | -1 | ( -1 ) ( 1 ) A transzformáció eltűnő egyenese: [0,1,0]; az X tengely
Nota bene … Ha M44 utolsó sora nem (0,0,0,c), akkor „valódi” projektív transzformáció s = [m41, m42, m43, m44] a transzformáció „eltűnő síkja” s’ = [ 0,0,0,c] : az ideális sík (!) A többi pont képe közönséges pont. Az eltűnő sík mentén M „fölvágja” a teret és „kifordítja”; az egyik féltérnek megfordul az irányítása! Ezért: képek előállításánál az ábrázolt tárgyak mind egy féltérben legyenek!
A projektív transzformáció megadása A tér egy projektív transzformációját meghatározza 5 független pont és képe. („Független”: semelyik 3 sem esik egy egyenesbe.) M44 ( O, X, Y, Z, E ) -> ( P, Q, R, S, T ) egy mik „szabadon” választható, a többi meghatározható
A sínpár perspektívája X = [1,0,0,0]; X’ = X Y = [0,1,0,0]; Y’ = Y Z = [ 0,0,1,0]; Z’ = [0,0,1,1] C = [0,1,0,1]; C’ = [0,0,1,0] F = [1,1,1,1]; F’ = [1,1,0,1]
A sínpár perspektívája M44 · [ X Y Z C F ] = [X’ Y’ Z’ C’ F’ ] (m11 m12 m13 m14) · ( 1 0 0 0 1 ) = ( p 0 0 0 t ) | m21 m22 m23 m24| | 0 1 0 0 1 | | 0 q 0 0 t | | m31 m32 m33 m34| | 0 0 1 0 1 | | 0 0 r s 0 | (m41 m42 m43 m44) ( 0 0 0 1 1 ) ( 0 0 r 0 t ) 20 egyenlet, 20 ismeretlen: 5 : p, q, r, s, t 15 (!) : mik ; (egy megválasztható) A „nézetmező:”
Egy iránypontos perspektíva X’ = X, Y’ = Y Z’ = [½, h, 0, 1]; h: a horizont vonal
Két iránypontos perspektíva Y’ = Y X’ = [ 0.1, h, 0, 1], Z’ = [ 0.9, h, 0, 1 ]
Egy hosszú ház perspektívája
Egy egyszerű projektív transzformáció Prototípusunk: Pz = ( 1 0 0 0 ) ( r miatt nem affin!) | 0 1 0 0 | | 0 0 1 0 | ( 0 0 r 1 ) X’ = PzX = (1 0 0 0) (x) ; h=0 v. 1 |0 1 0 0| |y| |0 0 1 0| |z| (0 0 r 1) (h) = [x', y', z', h'] = = [x, y , z, rz+h] = [x/h',y/h',z/h',1], ha h'=rz+h0 = [x, y , z, 0 ], ideális pont, ha h'=rz+h=0;
A tér átrendeződése
Y Z 1/r
Egy síkbeli projektív transzformáció A’= M·A = (1 0 0) · (-1) = (-1) ( 1) |0 0 1| |-1| ( 1) |-1| (0 1 0) ( 1) (-1) ( 1)
Sakk-kocka egy projektív transzformációja (távlatban az osztások valójában sűrűsödnek)
Összefoglalás X’= M·X kollineációk Affin transzformációk: M utolsó sora: [0,0,0,1] különben: Projektív transzformációk Affin transzformációk: En -> En és In -> In Eltolás, forgatás, léptékezés, nyírás van bennük Projektív transzformációk: az eltűnő sík közönséges pontjainak képe ideálispont Középpontos vetítés számolása: 3D => 3D projektív transzformáció, a nézetmező levetítése az alapsíkra, előtte: láthatóság-takarás
Jegyzet A 4. Fejezethez: G4E*.rtf, Gi4E*.ppt (ez az előadás) Gi4E*-Pz-matrix.ppt (a Pz mátrix vizsgálata)
Vége