A követezőkben a projektív geometria alapjaival, a homogén koordinátákkal és azokkal egyszerűsített, már tárgyalt transzformációkkal ismerkedünk meg, mintegy kiegészítésként az eddigiekhez. Erősen elméleti alapon és a teljesség igénye nélkül tárgyaljuk a megfelelő részeket, ezért a cikk elsősorban azoknak ajánlható akik már mélyebben megismerkedtek a matematika rejtelmeivel. | |
Mottó:" A semmiből teremtettem egy új, más világot."
A követezőkben a projektív geometria alapjaival, a homogén koordinátákkal és azokkal egyszerűsített, már tárgyalt transzformációkkal ismerkedünk meg, mintegy kiegészítésként az eddigiekhez. Erősen elméleti alapon és a teljesség igénye nélkül tárgyaljuk a megfelelő részeket, ezért a cikk azoknak ajánlható akik már mélyebben megismerkedtek a matematika rejtelmeivel. Viszont azok számára is hasznos is lehet, akiknek még mindez nem mond túl sokat, de későbbi tanulmányaik során talán jó hasznát vehetik. Ebben az összeállításban elsősorban az a célunk, hogy a különböző síkbeli, és térbeli transzformációkhoz olyan matematikai formalizmust találjunk, melyet egyszerűen és hatékonyan lehet algoritmizálni számítógépes rendszerekben. Az affin transzformációk és a vetületképzés műveleteinek egységes, közös leírásához a homogén koordináták leírásával juthatunk. Köszönhetjük ezt Bolyai Jánosnak!
Projektív geometria fogalma
Az euklideszi térrel már mindenki megismerkedhetett tanulmányai során, algebrai alapját pedig a Descartes koordinátarendszer jelenti. Ezzel a rendszerrel mi magunk is bőven foglalkoztunk már a sorozaton belül. De sajnos az euklideszi térben nem minden pont vetíthető centrálisan. A centrális projekcióra lyukas (ideális térelemek)! Gondoljunk csak bele, hogy mi történik azokkal a pontokkal, amik párhuzamosak a képsíkkal. Ilyenkor a pontokat jellemező vetítősugarak is párhuzamosak a képsíkkal, és nem felel meg képpont az euklideszi geometriában. Ezek a pontok a "végtelenbe vetülnek". Természetesen erre a problémára megoldást jelent a projektív geometria, ahol is a lyukas tereket "betömködik", "ideális térelemekkel". A projekti geometria tehát felfogható az euklideszi geometria és az ideális pontok egyesítéseként. Felvetődhet a kérdés, hogy miként is lehet betömködni a lyukas tereket az euklideszi geometriában? A tér minden egyes egyenesét a közönséges pontokon túlmenően egy ideális ponttal egészítjük ki. Definició szerint párhuzamos egyenesekhez egy ideális pont tartozik meyekben ezek "metszik" egymást.Egy sík ideális pontjai egy ideális egyenesen vannak . Párhuzamos síkok ideális egyenesei megegyeznek. A tér ideális egyenesei egy síkban vannak, a tér ideális sikjában. Az ideális térelemeket "végtelen" távoli térelemeknek is szokták nevezni. A számítógépes grafikában az ideális térelemek bevezetése azért nagyon fontos, mert a párhuzamos és nem párhuzamos térelemek kezelése ezzel a módszerrel egységesen megoldható. A projektiv geometriában az algebrai alapot a homogén koordináták jelentik.
Homogén koordináták fogalma
Egy mondatban megfogalmazva arrol van szó, hogy a 3D-s helyvektorainkat egy formális lépéssel négydimenzióssá egészítjük ki. A tér egy P pontjához vezető
r=(x,y,z)
vektort ezen túl
(w*x, w*y, w*z,w)
alakban írjuk. Természeten w egy nem nulla tetszőleges szám.
Ebből az írásmódból bármikor visszatérhetünk az eredeti 3D-s koordinátákhoz, úgy hogy a vektor első három koordinátáját elosztjuk a negyedikkel. Ezek alapján P(x,y,z) pont homogén koordinátái a (w*x, w*y, w*z,w) számnégyes lesz. A definíció alapján viszont P pontnak rengeteg homogén koordinátája lehet, a szerint hogy w-nek milyen értéket választunk. Emiatt érdemes w-nek egy konkrét értéket választani, mondjuk az egyet. Ekkor az x,y,z,1 koordinátanégyest a P pont normalizált homogén koordinátáinak nevezzük. Sajnos a 3D-s tér homogén koordinátáit szemléletesen nem tudjuk bemutatni, de 2D-s koordináták esetén már megoldható az ábrázolás. Ekkor a síkból ki kell lépnünk a térbe, úgy hogy az (x,y) alapsíkkal felveszünk egy párhuzamos síkot a térbeli koordinátarendszerben, ahol a felvett sík elmetszi z-tengelyt az egyben. Ekkor az (x,y) síkban lévő pontunkat merőlegesen felvetjük z=1 síkra. A lényege ennek a rendszernek vázlatosan ez volna.
Hogy mi értelme van mindennek? A választ erre nehéz röviden megadni, de az biztos, hogy nem csupán formális konstrukció. Ezt matematikailag az euklideszi tér ügynevezett projektiv lezárása teszi szükségessé. Ami alatt az értjük, hogy a teret kiegészítjük ideális térelemekkel. Azért fontos jobban megismerkednünk a homogén koordináták fogalmával mert a számítógépes grafikában az ideális vagy "végtelen" távoli térelemek bevezetésével a párhuzamos és nem párhuzamos térelemek kezelése egységes módon megoldhatóvá vált. Ami által sokkban leegyszerűsödtek a transzformációk programalgoritmusai!
A homogén koordináták tehát az n dimenziós tér egy pontjának helyzetét n+1 koordináta segítségével írja le, oly módon, hogy egy tetszőleges nullától eltérő értékkel az eredeti n dimenziós térben értelmezett koordinátákat megszorozzuk és ezt a konstanst tekintjük az n+1-dik koordinátának. Az n dimenziós tér egy pontja (x1, x2, x3, ..., xn) homogén koordinátákkal kifejezve (xh1, xh2, xh3, ..., xhn, w). Az eredeti n dimenziós és a homogén koordináták közötti kapcsolatot az xhi = xi * w összefüggés fejezi ki. Így egy n dimenziós térben értelmezett pontnak végtelen számú homogén koordinátás megfelelője létezik. Például a sík koordináták (2D) esetén egy pontnak a homogén koordinátás térben (3D) egy az origón áthaladó egyenes felel meg.
A legegyszerűbb, ha a homogén koordinátás alakra történő áttérésnél a szorzót egynek választjuk, ekkor a homogén és az n dimenziós tér koordinátái megegyeznek. Erre azért van szükség mert a definició alapján így egy tetszőleges P pontnak végtelen sok homogén koordinátja van, aszerint hogy w-nek milyen értéket választunk A normalizált és a szokásos térbeli koordinták között a fenti megfeleltetés kölcsönösen egyértelmű. Azaz ha P pont koordintája térben (x, y, z), akkor ennek megfelelő homogén koordináták a következőek lesznek, (x, y, z ,1). Viszont ha P pont homogén koordinátája (x, y, z, 1) akkor ennek megfelelő térbeli koordináták a következőek lesznek, (x, y, z). Az eddig megismert transzformációk, az eltolás kivételével mind elvégezhetők mátrixszorzással is. Ez azért fontos, mert ezeknek a mátrixoknak a sorozatos szorzatával, egymás után több transzformáció is végrehajtható.
A képet csak a már említett eltolás rontja el. Pontosan azért, hogy egységesen lehessen kezelni az eltolást, a forgatást, a nyírást, kell a homogén koordinátás megadáshoz folyamodnunk. Ugyanis egy háromdimenziós eltolást nem erőltethetünk egy 3x3-as mátrixba, mert egyszerűen nincsen hely számára. Ha azonban a mátrixot 4x4-esre bővítjük ki akkor már az eltolást is mátrixszorzással kezelhetjük. Ehhez persze a vektorunkat is ki kell bővíteni négydimenzióssá. Pontosan ezért fontos a homogén koordinátás megadás.
Mert így már minden geometriai transzformációt mátrix műveletek segítségével hajthatunk végre, több egymás után végrehajtandó transzformáció eredőjét egy transzformációs mátrixba foglalhatjuk össze, használatuk és az alkalmazott módszerek könnyen általánosíthatók az n dimenziós térre, végtelenbe levő pontokat véges koordinátákkal fejezhetünk ki.
Geometriai számítások homogén koordináták segítségével
Pont és egyenes viszonya
A 2D-s térben egy egyenes általános alakját az a*x + b* y + c = 0 egyenlettel adhatjuk meg. Az y = m * x + b nem az egyenes általános alakja, mivel ezzel a kifejezéssel nem tudjuk leírni az y tengellyel párhuzamos egyeneseket! Egy 2D-s pont koordinátái akkor elégíti ki az egyenes egyenletét, ha pont az egyenesre esik. A pont homogén koordinátáit használva az egyenes egyenletének bal oldala az egyenes együtthatóiból alkotott vektor (e) és a pont homogén koordinátáiból alkotott vektor (p) skaláris szorzata. Az <e p> skaláris szorzat eredményének előjele megadja, hogy a pont az egyenes melyik oldalára esik, az értéke pedig arányos a pont és az egyenes távolságával.
Két ponton átmenő egyenes (2D)
Legyen p1 és p2 két nem egybeeső 2D-s pont homogén koordinátás vektora. A két ponton áthaladó egyenes egyenletének együtthatói megegyeznek a p1 és p2 vektorok vektoriális szorzatának koordinátáival (e = p1 x p2).
Mivel xh1 = x1 *w1, yh1 = y1 * w1 és xh2 = x2 * w2, yh2 = y2 * w2, az a, b, c együtthatókból kiemelhetünk w1 * w2-t és egyszerűsíthetünk vele.
Az egyenes együtthatóinak helyességét könnyen ellenőrizhetjük, a <p1 e> és <p2 e> skaláris szorzatok eredménye nulla.
Két egyenes metszéspontja (2D)
Vegyük észre, hogy a 2D tér legegyszerűbb kétdimenziós alakzata (egyenes) és a kettődimenziós pont homogén koordinátás alakja három elemű vektorral írható le. Ezek alapján a két egyenes metszéspontjának kiszámítására is alkalmazható a két ponton átmenő egyenes együtthatóinak kiszámításához felírt összefüggés.
A kettődimenziós térbe a homogén koordinátával (w) való osztás után juthatunk vissza.
A homogén koordináták alkalmazásával a két ponton áthaladó egyenes és a két egyenes metszéspontjának meghatározása ugyanannak a matematikai problémának a megoldását jelenti. Ez az állítás az n dimenziós térre is általánosítható. Ezt a dualitás tételének nevezzük. A kétdimeziós térben a pont és az egyenes, a háromdimenziós térben a pont és a sík az egymásnak megfelelő elem.
Pont és egyenes távolsága
Egy pont homogén koordinátás vektora és egy e egyenes együttható vektorának a skaláris szorzata a pont és az egyenes távolságával arányos. A skaláris szorzat normálásával a távolságot is megkaphatjuk. A p (xh, yh, w) pont és az e (a, b, c) egyenes távolsága (t):
Egy ponton áthaladó és adott egyenesre meröleges egyenes egyenlete
Adott egy p pont homogén koordinátás vektora és egy e egyenes együttható vektora. A keresett egyenes együttható vektorát jelöljük f (d, e, f)-el. Az f egyenesnek át kell mennie a p ponton <p f> = 0. Az f egyenes merőleges e-re, ha irányvektoraik skaláris szorzata 0 (a*c+b*d=0).
3 ponton átmenő sík (3D)
Próbáljuk meg általánosítani a a kettő dimenzióban alkalmazott két ponton átmenő egyenes egyenletét. A háromdimenziós térben egy pont homogén koordinátás alakját négy koordinátával írhatjuk le p (xh, yh, zh, w), egy sík általános egyenlete a * x + b * y + c * z + d = 0. Készítsük el a négydimenziós tér egységvektor irányaiból és a három térbeli pont homogén koordinátáiból alkotott mátrixot és képezzük az egyes i, j, k, l irányokhoz tartozó aldeterminánsokat, ezek adják a sík egyenletének együtthatóit (ezzel tulajdonképpen a 3D-s tér vektoriális szorzatát általánosítottuk).
2D-s transzformációk
Az elemi 2D-s geometriai transzformációk 3x3-as mátrixok segítségével írhatók fel. Egy pont transzformáció utáni koordinátáit a pont homogén koordinátás vektora és a transzformációs mátrix szorzata adja. A transzformációs mátrix 4 részre bomlik
1 forgatás és méretarány változtatás az x és y tengely mentén
2 eltolás
3 projektív transzformáció
4 méretarány váltás mindkét koordinátatengely mentén
Eltolás
Skálázás
Az x és y tengely mentén eltérő méretszorzó beállítása
Az x és y tengely mentén azonos méretszorzó beállítása
A skálázás segítségével az x illetve y tengely menti tükrözést is végrehajthatunk (Sx=-1, Sy=1 az x tengely menti tükrözés).
Origó körüli forgatás
A pozitív forgási irány az óramutató irányával ellentétes.
Projektív transzformáció - Egyenesekre vonatkozó transzformációk
A p pontot az M transzformáció mátrix a p' pontba viszi át (pT'=pTM). Az e egyenes együtthatóit az M transzformáció után az e'=M-1e összefüggés alapján kaphatjuk meg.
Transzfornációk konkatenálása
Egy pontra több elemi transzformációt alkalmazva a következő összefüggés adódik
Mivel a mátrix szorzás asszociatív (csoportosítható) a következő alakban a felírhatjuk
Azaz a transzformációs mátrixok szorzatát előre kiszámíthatjuk és egy eredő M transzformációs mátrixot írhatunk fel.Figyelembe kell venni, hogy a mátrix szorzás nem kommutatív művelet, így a transzformációs mátrixok sorrendjét nem szabad felcserélni.
Transzformációk ellentettje
Egy M transzformáció ellentetjét a transzformációs mátrix inverzével fejezhetjük. Az eddig felírt elemi transzformációk mindegyike invertálható (rangjuk 3).
Az egyes elemi transzformációk ellentett transzformációja és az eredeti transzformációs mátrix inverze azonos. Például a 30 fokos forgatás transzformációs mátrixának az inverze a mínusz 30 fokos forgatás transzformációs mátrixával azonos.
Például egy tetszőleges pont körüli elforgatást három elemi transzformáció felhasználásával hajthatjuk végre.
- a koordinátarendszer origójának eltolása a forgatás középpontjába
- forgatás az origó körül
- a koordinátarendszer visszatolása az eredeti helyzetébe, az 1 transzformáció inverze
Leképzési transzformáció
A számítógépes grafikában gyakran kell transzformálnunk a világ koordinátarendszer (ez az a koordinátarendszer, melyben a geometriai alakzatok jellemző pontjainak koordinátáit tároljuk) és a képernyő koordinátarendszer között. Jellmzően a világ koordinátarendszer egy téglalap alakú, koordinátatengelyekkel párhuzamos tartományát képezzük le a kép koordinátarendszer egy téglalap alakú tartományába.
A leképzési transzformáció elemi transzformációi, a világ koordinátarendszer origójának eltolása a megjelenítendő rész bal felső sarkába (a képernyő koordinátarendszer pozitív y tengelye lefelé mutat), a koordinátarendszer tükrözése az x tengelyre, méretváltoztatás a tengelyek mentén, eltolás a képernyő koordinátarendszerben. Az ily módon létrehozott leképzési transzformáció inverzével a képernyő koordinátákat (egér mutató pozíciója) vissza tudjuk transzformálni a világ koordinátarendszerbe. További problémát jelent, hogy a megjelenítésre kiválasztott téglalapon kívüli részeket nem szabad megjeleníteni. Ennek megoldását az ablakvágási módszereknél tárgyaljuk.
3D-s transzformációk
Eltolás
Skálázás
Az x, y és z tengely mentén eltérő méretszorzó beállítása
Az x, y és z tengely mentén azonos méretszorzó beállítása
Az X, Y, Z tengely körüli forgatás alfa szöggel
A háromdimenyiós transzformációk esetén az elemi forgatási transzformáció a tengely körüli forgatás. Ennek megfelelően háromféle forgatási transzformáció írható fel.
Az X tengely körüli forgatás alfa szöggel
Az Y tengely körüli forgatás alfa szöggel
A Z tengely körüli forgatás alfa szöggel
Perspektív transzformáció
A perspektív transzformáció a háromdimenziós koordinátákból kétdimenziós koordinátákat állít elő. Az ilyen dimenzió csökkentő transzformációnak nem létezik inverze. A háromdimenziós testek ábrázolásánál általában meg kell oldani a takart vonalak vagy takart felületek problémáját is. Ehhez szükség van a képsíktól mért távolságra is, ezért olyan transzformációt vezetünk be, mely a perspektív mélységet is megőrzi.
Transzformáció az eltünési pontok alapján
Prespektív traszformáció tetszőleges nézőpont és képsík helyzet esetén
Adott a nézőpont (Xe, Ye, Ze) és a képsík középpontjának (Xk, Yk, Zk) helyzete.
- Az origó eltolása a nézőpontba
- Forgatás az x és y tengely körül, hogy a z tengely a nézőpont és a képsík középpont egyenesébe kerüljön
- Perspektítv transzformáció
Bolyai János új, más világa
BOLYAI JÁNOS minden idők egyik legnagyobb és legeredetibb gondolkodású matematikusa volt és a legforradalmibb tudományos alkotók közé tartozott. Édesapja Bolyai Farkas hadmérnök volt, fia 1802 december 15.-én született Kolozsváron. Tavaly volt a 200. évfordulója, és országszerte megemlékeztek róla. Sajnos mi akkor ezt ne tettük meg, de úgy gondolom minden évben megtehetjük, az iránta való tisztelet jeléül, hiszen feledni úgysem lehet e tragikus sorsú lángészt.
"Bolyai János 12 éves korától szakadatlanul foglalkozott a "parallelák" hatalmas problémájával.1823-ban ezeket a sorokat írta Temesvárról édesapjának:"A feltételem már megvan, áll, hogy mihelyt rendbe szedem, elkészítem,'s mód lesz , a'parallelákról egy munkát adok ki;....Édes-Apám meg-esmeri; most többet nem szólhatok, csak annyit, hogy "A SEMMIBŐL EGY ÚJ MÁS VILÁGOT TEREMTETTEM" De mi is ez a nagy felfedezés amely alapjaiban "megrengette" az akkori világot? Az antik görögök nagy találmánya a GEOMETRIA. Az antik görög geometria alkalmazhatósága elsősorban annak köszönhető, hogy állításait "néhány alapigazságból" vezeti le. Nem szükséges tehát a természet minden jelenségét közvetlen tapasztalatból megismerni, elég csupán néhány elemi, minden ember számára nyilvánvaló alapigazság-úgynevezett- Axioma-megismerése tapasztalat alapján. Utána már minden egyéb tapasztalatilag alig hozzáférhető tényt az axiómák igazságára támaszkodva pusztán gondolkodás útján be tudunk bizonyítani.
Az elmondottak alapján, elég világos, hogy a geometria tudományában minden axiómákon múlik. De a geometria axiómái között, amelyeket Eukleidész, alexandriai matematikus állított össze i.e.300 körül, az "V.posztulátum, vagy XI. axióma néven szerepel egy olyan állítás is, amelynek igazsága egyáltalában nem nyilvánvaló, mint a többi axiómáé. Ez síkra vonatkoztatva, így mondható ki: ha a P pont nincs az E egyenesen, akkor a P ponton egyetlen E-vel párhuzamos egyenes halad keresztül. De mi is az a párhuzamos? Ugyanazon két sík egyenesét akkor nevezzük párhuzamosnak, ha sohasem metszik egymást. A gyakorlatban ezt csak úgy tudnánk bebizonyítani, hogy végig járnánk az egyik egyenest. De ezt a végtelen hosszú utat lehetetlen megtenni.
Az V. posztulátumnak az az állítása tehát, hogy az E egyeneshez csak egy párhuzamost húzhatunk nem nyilvánvaló, ezért ez a posztulátum kirí a többi axioma közül. 2000 évig "gyötörte" ez az axioma a világ tudósait, míg megszületett az a gondolat, hogy az V.posztulátum talán nem is "alapigazság" hanem a többi axióma "következménye". Fel kellene fedezni tehát az V.posztulátum "bizonyítását" a többi axióma alapján. A nagy kérdésre 2000 évig senki sem találta meg a választ. Bolyai János először mint előtte sokan mások: feltette, hogy az V. posztulátum hamis, és azt remélte, hogy ebből valamilyen ellentmondásra bukkan, ami azt igazolná, hogy feltevése helytelen, vagyis az V. posztulátum állítása mégiscsak igaz. Bolyai is kereste a "hibát", mint annyian előtte, Saccheri, Lambert, Lagrange vagy Bolyai Farkas.
Kereste és nem találta! Ekkor jött rá arra a rendkívüli jelentőségű gondolatra, hogy azért nem talál ilyen hibát, mert "Nincs ilyen Hiba!" Bolyai János lángesze észrevette, hogy a geometria közvetlenül nem azt írja le, milyen a világ, hanem csak eszköze a világ megismerésének: azt írja le milyen lehet a világ. A geometria rendet csinál a világról alkotott felfogásunkban és megmutatja az utat, amerre járnunk kell. Tehát az V.posztulátum elhagyásával a megmaradó axiómákból felépíthető egy olyan geometriai tudomány, amely " új, más világ" lehetőségét is felöleli de magába foglalja különleges esetként az V.posztulátumot elfogadó eukleidészi geometriát is, de egy másik nem eukleidészi geometriát is tartalmaz, amelyben már az V.posztulátum nem alapigazság.
Ezt az új eukleidészi és nem eukleidészi geometriát foglaló tudományt nevezte el Bolyai János ABSZOLÚT GEOMERIÁNAK. Az abszolút geometria a tudományos kutatások előtt új lehetőségeket tárt fel. Az egész matematikát megrázta ez az új, nagyszerű felfedezés. Bolyai tisztában volt új más világa forradalmi merészségével is, amely szinte cáfolhatatlanul bebizonyította az eukleidészi geometria megingathatatlannak látszó igazságait. Több írásos előzmény után ez jelent meg apja "TENTAMEN" című könyve függelékeként "A P P E N D I X" címen.
Az "Appendix-ben" felállított tételek többsége "abszolút igaz", mert egyaránt érvényes az eukleidészi és a párhuzamossági axióma tagadására fölépített úgynevezett hiperbolikus geometriában. Óriás volt Ő a tudósok között, ugyanakkor törhetetlen szándékú az igazabb, jobb világot keresők között. Világra szóló felfedező, aki minden erejével kutatta az igazságot, s a magyar nép büszke szeretettel öleli magához az igazságért oly sokat szenvedett lánglelkű fiát."
Felhasznált és ajánlott irodalom:
Foley, van Dam, Feiner, and Hughes: "Számítógépes grafika: Alapelvek és gyakorlat" c.
Dr. Szirmay-Kalos László: Számítógépes grafika, 2001
Scharnitzky Viktor: Vektorgeometria és lineáris algebra, 1999 (alap!)
L. Ammeraal: Programming Principles in Computer Graphics
Bárczy-Barnabás: Differenciálszámítás, 2001
Turcsányi Tamás, Debreceni Egyetem, 2000
Kozák Rolland, Szegedi Tudományegyetem
Budai Attila: Számítógépes grafika, 1999
Füzi János: Grafikai Alkalmazások Delphi Nyelven, 2000
Füzi János: 3 dimenziós grafika és animáció IBM PC-n
Füzi János: Interaktív grafika, 1997
Internetes publikációk