Homogén koordináták és transzformációk

Homogén koordináták fogalma

A homogén koordináták 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 tetsleges 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. Igy 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.

Miért célszerű a homogén koordináták bevezetése?

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 (a, b, c) 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*d+b*e=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).

3 sík metszéspontja

 

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 3
 

2

 

4

 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.

Transzformá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.

  1. a koordinátarendszer origójának eltolása a forgatás középpontjába
  2. forgatás az origó körül
  3. 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

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

X, Y, Z tengely körüli forgatás

A háromdimenyiós transyformációk esetén az elemi forgatási transyformáció a tengelz körüli forgatás. Ennek megfelelően háromféle forgatsi transyformáció írható fel.

X tengely körüli forgatás

Y tengely körüli forgatás

Z tengely körüli forgatás

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 e. 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.

  1. Az origó eltolása a nézőpontba
  2. 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
  3. Perspektítv transzformáció