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