Dr. Sárközy Ferenc: Térinformatika
Megjelenítési funkciók I
Ezen a lapon a a teljes téma rövid felvázolása után
megismerkedünk
A Földrajzi Információs Rendszerek egyik funkciója továbbra is
a hardcopy térképek előállítása. Ez a funkció azonban kiegészült a megjelenítés
képernyős válfajaival, ezen kívül pedig maga a hardcopy is bővült olyan
termékekkel, melyeket hagyományos eljárásokkal nem lehetett vagy nem volt
gazdaságos tömegméretekben előállítani.
Amint arról az első fejezetben már szóltunk a tárbeli
adatbázisok nem számítógépes tárolásának és felhasználásának grafikus eszközei
a térképek voltak. Ezek közül is a topográfiai térképek voltak azok a termékek,
melyek a maguk technikai szintjén a legjobban hasonlítottak a FIR-ekre. Ezek
azok a térképek ugyanis melyek a legtöbb tematikát (réteget) tartalmazzák és
pedig nem csak helyzeti, de a lehetőségekhez képest maximális mennyiségű leíró
adattal együtt. Ahhoz, hogy a sok adat használható formában jelenjen meg a
térkép méretaránya által korlátozott papírlapon a kartográfusok nagy mesterségbeli
tudására van szükség. Érdekes jelenség, hogy bár a papírtérképek jelentőségének
rohamos csökkenését már sokan és sokszor megjósolták, a legújabb GIS szoftverek
népszerűségének mind a mai napig fontos feltétele, hogy rendelkezzenek olyan
modulokkal, melyekkel tisztázati térképek eredeti fóliáit lehet készíteni.
A GIS előnye többek
közt az, hogy az adatok közül azokat jelenítjük meg, melyekre a kérdéses
feladat szempontjából éppen szükségünk van. Ezzel elkerülhetjük a zsúfoltságot
és a térképészeti megjelenítés szabályainak automatizálása is egyszerűbbé
válik.
A vizsgált tematikák, különösen azok munkaközi állapotának
megjelenítő eszköze a képernyő. A képernyő egyik legnagyobb
előnye, hogy segítségével szinte korlátlanul használhatjuk a színeket, s lehetőségünk
van olyan eszközök igénybevételére is, melyekkel hardcopy-n nem élhetünk (pld.
villogó vonalak, területek vagy csak az adatbázis felbontása által korlátozott
nagyítás). A képernyő hátrányai közül elsősorban a megjelenített terület
viszonylag kis méretét említjük. A nagynak számító 21"-es képernyő
átmérője méterben kifejezve 53.3 cm, ha leszámítjuk a kihasználatlan
területeket, ez ugyan megfelel egy topográfiai térkép átmérőjének, de arra a
képernyőn nincs lehetőség, hogy a térképeket egymásmellé helyezzük és
összeragasszuk, amire a gyakorlatban gyakran rákényszerülünk.
Úgy néz ki azonban,
hogy ezek a problémák is megoldódnak, akkor ha a kommerciális GIS szoftverek
tömegesen fogják alkalmazni a mozgás szimulálás illetve a virtuális realitás
lehetőségeit. Ma még ezeket a rendszereket elsősorban repülés szimulátorokban
(és játék szoftverekben) alkalmazzák, de GIS alkalmazásuk már 1993 óta
napirenden van.
A GIS megjelenítés legnagyobb újdonsága a hagyományos
térbeli adathordozókkal (térképekkel) szemben a térbeli ábrázolási lehetőségek
tökéletesedésében van.
A hagyományos térképek a domborzatot szintvonalakkal mutatták be és
drágasága miatt csak kevés országban egészítették ki a topográfiai térképeken a
szintvonalakat árnyékolási eljárással. A 80-as évek végétől kezdődően a GIS
szoftver termékekbe egyre szervesebben beépültek a DEM vagy TIN modulok, melyek
segítségével lehetővé vált a terep perspektív ábrázolása. A perspektív
ábrázolás több szoftverben kibővült a tereptárgyak (jelkulcsi elemek) perspektív
ábrázolásával, ami megteremtette az animációs megjelenítés feltételeit az
adatszerkezet oldaláról.
A továbbiakban megismerünk néhány fontosabb alapelvet és
funkciót az ábrázolás területén.
Kétdimenziós térképek
megjelenítése
Ahhoz, hogy a térképet használni tudjuk a térképnek
rendelkeznie kell kerettel, hálózati vonalakkal és kereten kívüli megírásokkal.
A keret a térkép szabványtól függően tartalmazza a kilométer hálózati vonalak
és/vagy fokhálózati vonalak megírásait. A keretvonalak rendszerint csak az
egyik hálózatot tüntetik fel. A jobb térinformatikai rendszerek rendelkeznek
különböző szabványos keretinformációval, de lehetővé teszik a keret egyedi
megtervezését is. Tekintettel arra, hogy a GIS szoftverek zöme külföldi eredetű
vásárláskor figyelemmel kell lenni arra, hogy az eladók kiegészítették e a
szoftvert a magyar szabvány előírásaival. Ez a megjegyzésünk természetesen nem
csak a keretre, a szelvénybeosztásra, a kereten kívüli megírásokra, de a
globális és lokális referencia felületekre és a jelkulcsra is vonatkozik.
A kereten kívüli megírások (a térkép neve, száma, keletkezési
éve, méretarány, jelkulcs, aránymérték, lejtőszög diagramm, szomszédsági
diagramm, stb.) általában szintén szabványosak s a program által zömében
automatikusan helyeződnek el és töltődnek ki, a jobb szoftverek azonban, éppen
a GIS-specifikus termékek megjelentetése érdekében, lehetővé teszik a
felhasználó által definiált kereten kívüli megírások létrehozását is.
A hagyományos térképek tervezésének egyik legfontosabb
momentuma a feliratok tervezése és elhelyezése. A
feliratok nem csak a térképi objektumok nevét közlik a felhasználóval, de
utalnak az objektum tájolására, méretére, nagyságára esetleg osztályára. Mindez
az elhelyezés, nyújtás, betűtípus és betűnagyság segítségével valósítható meg.
A feliratok elhelyezésének szerepét azonnal észrevesszük, ha ránézünk egy
térképre: ha az zavaros egyenetlen, olvashatatlan, úgy a feliratok
elhelyezésébe hiba csúszott.
A német kartográfus E. Imhof az alábbiakban foglalta
össze a felirat elhelyezés legfontosabb szabályait:
- A
neveknek olvashatóaknak kell lenniük és illeszkedniük kell azokra az
objektumokra, melyeket megneveznek;
- A név
és objektum kapcsolata gyorsan felismerhető legyen;
- A nevek
nem fedhetik egymást és általában minimális hasznos információt takarjanak
ki;
- A
feliratoknak támogatniuk kell az objektumok tulajdonságainak szemléletessé
tételét.
A feltételek teljesítését segíti, ha a nevek elhelyezését fordított sorrendben végzik,
mint amilyen a kérdéses felirattípus szabadságfoka.
Először a területi objektumok feliratait helyezik el mivel azoknak nem csak a
kérdéses területen belül kell elhelyezkedniük, de kiterjedésükkel le kell
fedniük az egész foltot a nélkül, hogy más feliratokkal konfliktusba
kerülnének. Ezután kerülhet sor a pontszerű objektumok felirataira, melyeket a
pontok közelében kell elhelyezni, végül a legszabadabban elhelyezhető feliratok
a vonalas objektumokra kerülnek.
A feliratok elhelyezési szabályainak betartása természetesen
nem ennyire fontos, ha kisebb információs tömörségű GIS fedvények, vázlatok,
illusztrációk megjelenítése a cél. Ennek megfelelően az eredetileg is GIS-nek
tervezett régebbi szoftverek viszonylag kevés lehetőséget biztosítottak a
feliratok elhelyezésére, míg az automatikus térképező rendszerekből fejlesztett
GIS szoftverek ugyanerre az időre (80-as évek második fele) már gazdag
interaktív felirat elhelyezési rutinokkal rendelkeztek, sőt egyesek megkísérelték
(egyelőre nem teljes sikerrel) a felirat-elhelyezés automatizálását is. Napjainkban,
amint erről már szóltunk a GIS szoftverek kartográfiai képességei rohamosan
javulnak, ezért indokolt, hogy új beszerzés esetén ezek minimumának meglétét
megköveteljük.
Kívánatos, hogy a szoftver négy szinten támogassa a
feliratok elkészítését és elhelyezését.
Az első színt a szabványos színt, itt a térkép
szabványnak (és méretaránynak) megfelelő feliratok kerülnek kiválasztásra,
automatikus megírásra (az adatbázis alapján) és közelítő elhelyezésre. Az első
színt a negyedik, interaktív szinten csak elhelyezésben, kiegészítésben (az
adatbázis egyidejű módosításával) és esetleges rövidítés alkalmazásával
módosítható.
A második színt nem szabványos, elsősorban
térinformatikai termékek előállítását segíti. A felhasználó megadja a
térképen ábrázolandó felirat típusok (pld. megyék, települések, vizek, stb.)
súlyozását (a típusokon belüli osztályozás a feldolgozás során már elkészült),
a készítendő térkép méretarányát és ezek alapján a program megajánlja a betűtípusokat,
elkészíti és elhelyezi a feliratokat. A negyedik, interaktív szinten a
felhasználó mindent módosíthat.
A harmadik színt jelenti a hagyományos rajzoló programok
szintjét, ahol mindent a felhasználó választ és
készít a betűnagyságoktól és típusoktól magukig a feliratokig és azok
elhelyezéséig.
A negyedik színt az első és második szintek behatárolt
módosítására szolgál.
A jelkulcsi elemek
(szimbólumok) készítése és elhelyezése a térképkészítés legnagyobb volumenű
feladata.
A jelkulcsi elemeket pontszerű, vonalas vagy
területi objektumokhoz rendelhetjük. A generalizálással
kapcsolatban már említettük, hogy ideális esetben, egy nagyon részletes
adatállományból generalizálás segítségével kevésbé részletes, kisebb
méretarányban megjeleníthető adatállományt állíthatunk elő. Említettük azt is,
hogy a generalizálás nemcsak a vonalak részletgazdagságát hivatott csökkenteni,
hanem annak érdekében, hogy a szimbólumok ne fedjék egymást a kevésbé fontos
objektumok eltolását vagy megszüntetését is el kell keretében végezni. Ha tehát
a kiértékelést pld. ortofotó képernyő digitalizálásával végeztük és azt
találjuk, hogy a szimbólumok beillesztése után a vasút és a közút helyenkínt
fedik egymást, úgy interaktív módon csak a rajzi állományban a közutat kissé el
kell tolnunk, hogy a fedés megszűnjön. A fentiekből következik, hogy bizonyos méretarány alatt
interaktív szerkesztésre mindig szükség van.
A szimbólumok esetén és elvárhatjuk a szoftvertől, hogy az
adott országban szabványos méretarányok számára szabványos jelkulcsi elemek elhelyezését
ajánlja fel. Az elhelyezés módosítása ebben az esetben egyszerűbb lesz mint
a feliratok esetében, mivel csak azokat az eseteket kell korrigálni, ahol két
vagy több jelkulcsi elem fedésbe kerül, ezen kívül legfeljebb a szimbólum hibás
tájolása okozhat gondot.
Térinformatikai elemzések eredményeinek megjelenítésekor,
amint már erről szóltunk, általában kisebb a zsúfoltság, ezért lehetőség van
nagyobb kifejezőbb szimbólumok alkalmazására is. Ezen kívül a szabványos
térképek a területi objektumok jelölésére legfeljebb színes felülnyomást
alkalmaznak, míg a térinformatikai rendszerek képesek különböző kitöltő
formákkal megkülönböztetni a más és más attribútumokkal jellemzett poligonakat.
Végül a GIS olyan tulajdonság együtteseket is tárgyakként kezelhet, melyek a
szabványos térképeken nem jelennek meg. Mindezen okok miatt szükség van
arra, hogy egy-egy elemzés számára önálló szimbólumokat választhassanak vagy
szerkeszthessenek. Támogatandók azok a szoftverek, melyek gazdag
előregyártott és méretezhető jelkulcsgyűjteménnyel rendelkeznek (beleértve a
kettős vonalak különféle variációit), de e mellett egyszerű eszközöket is nyújtanak
egyéni jelkulcsok kialakításához.
Tulajdonképpen már a magasságmodellezéssel kapcsolatban
szólhattunk volna a láthatósági vizsgálatokról. Az, hogy ez a
kérdés itt kerül szóba azzal magyarázható, hogy itt viszonylag egyszerű
geometriai összefüggésekből levezetett eredményt jelenítünk meg a
térképen.
A függvény feladata, hogy kijelölje a térképen azokat a
foltokat, melyek egy vagy több pontból (esetleg egy folyamatos útvonalról) az
észlelő magasságából szemlélve nem láthatók. Ahhoz, hogy a feladat megoldható
legyen szükségünk van a terep digitális magasságmodelljére, az észlelő
álláspontjára (pályájára) és annak magasságára, a terepet esetleg borító
növényzet magasságára és annak az objektumnak a magasságára amely láthatóságát
vizsgáljuk (ha a terep láthatóságára vagyunk kíváncsiak akkor ez a magasság zérus).
A 4.32 ábrán egy
egyszerű példa segítségével kívánjuk megvilágítani a funkció lényegét.
Az ábra alsó részén
egy enyhén dombos hazai táj kis részletének szintvonalas ábrázolása látható. A
láthatósági vizsgálat segítségével arra keressük a választ, hogy az A ponton
álló 2 m. magas szemlélő elől mely terepszakaszok maradnak fedettek.
A vizsgálatot
hagyományos szerkesztéssel végeztük, mivel a feladat lényegét így tudjuk egyszerűbben
megérteni. E módszer természetesen csak magyarázatra szolgál mivel a GIS
szoftver a feladatot pillanatok alatt és sokkal pontosabban el tudja végezni
.
|
4.32 ábra -
láthatósági vizsgálat vázlata
|
|
Az ábrán, praktikus okokból (áttekinthetőség, munkaigény) csak 6 irányban
vizsgáltuk a láthatóságot, ezért a kapott, be nem látható területek alakja
csak viszonylag durva közelítésként fogható fel.
Maga
a szerkesztés nem igényel bővebb magyarázatot: az irányok és szintvonalak
metszéspontjait felvetítjük a szintvonal magasságát reprezentáló magassági
beosztásra, s az egymás utáni pontokat összekötve megkapjuk a kérdéses irány hosszmetszetét
- profilját. A profilokat számukkal címkéztük és helyenként hosszú szaggatott
vonallal élénkített folyamatos vonallal ábrázoltuk.
|
Ezután a hosszmetszetben az A pont függőlegesébe
felmértük a 2 m. magas szemlélési pontot és e pontból érintő egyeneseket
húztunk az egyes szelvényekhez. Az érintési pontokat levetítettük a szelvények
alaprajzára és a megfelelő pontokat összekötve megkaptuk a sraffozott kitakart
(nem látható) területeket. Talán nem kell ecsetelni, hogy a szoftver nem csak 6
irányban vizsgálja a láthatóságot (és nem a szintvonalakból számítja a
metszeteket) s ennek következtében a szoftverrel készült termékeken a kitakart
területek határvonalai sokkal tagoltabbak, pontosabbak lesznek.
Lényeges rámutatni, hogy a
végeredmény pontosságát szoftver használata esetén is jelentősen
befolyásolhatja a terepet borító növényzet magasságának helyes bevitele.
Míg az egy pontból való láthatóságot illetve kitakarást, ha
nehezen is, de hagyományos módszerekkel is meg tudjuk határozni, addig a vonalon mozgó álláspontról végzett láthatóság
vizsgálatra csak a számítógépi program képes.
Bemenő adatként ebben az esetben az út nyomvonalát is meg kell adni.
A perspektív ábrázolás
a terepfelszín ábrázolásának leghatásosabb
módszere. Ahhoz, hogy a transzformáció lényegét világosan lássuk célszerű, ha
felelevenítjük illetve kis mértékben kiegészítjük a síkbeli
és térbeli transzformációkkal
kapcsolatban ismertetett törvényszerűségeket.
Amint láttuk, alapértelmezésben a grafikai transzformáció azt
fejezi ki, hogy adott változtatások (eltolások, méretarány változtatások más
szóval skálázások, elforgatások) hatására mik lesznek a pont új helyének
koordinátái. Ha a változtatásokat továbbra is Mi-vel
jelöljük, ahol az i index a változtatás típusát jelöli (e=eltolás, s=skálázás,
r=forgatás), úgy három dimenzió esetén is érvényes, hogy változatlan
koordináta rendszerben megadott összetevőkkel elmozdított pont új
koordinátáit megkapjuk ha a régi koordináták vektorát megszorozzuk a változási
mátrixok szorzatával, azaz
|
|
(5).
|
Az eltolásokat és skálázásokat reprezentáló transzformációs
mátrixok viszonylag egyszerűen alakíthatók át három dimenziósokká az alábbiak
szerint:
|
(6),
|
|
(7).
|
A forgatási transzformációk mátrixainak felírásához
felhasználhatjuk a korábbi eredményeket de
figyelembe kell vennünk, hogy homogén koordinátákat használunk,
tehát a mátrix dimenzióját bővítenünk kell, illetve azt a tényt, hogy esetünkben nem a koordináta
rendszereket mozgatjuk a mozdulatlan pontokhoz képest, hanem a pontokat a
mozdulatlan koordináta rendszerhez képest.
|
4.33 ábra - forgási értelem mozgó pont esetén
|
|
A mozdulatlan
pont mozgó pontra cserélését úgy vehetjük figyelembe, hogy megváltoztatjuk a
forgatási szögek előjelét vagy ami ezzel egyenértékű a pozitív forgatás
irányát. Míg a korábbi
esetben az óramutató járásával ellentétes forgást tételeztünk fel
pozitívnak, addig
a pontok mozgatásához szükséges forgatásoknál az óramutató járásával
megegyezőnek tekintjük a pozitív forgatást (4.33
ábra).
Ezzel a "trükkel" elértük, hogy a (8) mátrix zérustól és 1-től különböző
elemei megegyeznek a 17.1.1.2 pont R
mátrixának értékeivel. Abban az esetben, ha a koordináta tengelyeket kívánjuk
elforgatni s a pontokat mozdulatlanul hagyjuk továbbra is érvényes a (8)
transzformációs mátrix csak az elfordulás értékeket fordított előjellel kell
behelyettesíteni, ami egyenlő azzal, mintha a tengelyek szerinti forgatások
pozitív értelmét az óramutató járásával ellenkezőre változtatnánk.
|
Az Mr mátrix tehát az alábbi alakban írható
fel, ha a forgatások sorrendje megegyezik a korábbiakkal, azaz először a Z tengely
körül forgatunk -al, majd az Y körül -vel, végül
az X körül -el:
|
(8).
|
A pont teljes elmozdulását
leíró transzformációs mátrix tehát háromdimenziós esetben is az elemi
helyzetváltozásokat jellemző transzformációs mátrixok konkatenálásával,
egyszerűbben szólva, összeszorzásával nyerhető. Az összeszorzásnál be kell tartani az egyes helyváltoztatások
sorrendjét.
Hogy ne legyen problémánk abban az esetben sem, ha a forgatások sorrendje nem
egyezik meg a példában szereplővel megadjuk azt a három mátrixot is, melyek az
egyes tengelyek szerinti elfordulásokat írják le, továbbra is a 4.33 ábra
jelöléseihez tartva magunkat:
Gyakran szükségünk lehet a transzformációk
megfordítására. azaz a pont visszamozgatására eredeti helyzetébe. Egyszerűbb
esetekben pld. eltolás vagy egy tengely körüli elforgatás esetén kézenfekvő,
hogy az inverz transzformációt egy olyan mátrixszal végezhetjük, melyben az
eredeti mozgáselem negatív értéke szerepel. Összetett mozgások esetén azonban
ez a módszer már nem ad helyes eredményt, ezért ezekben az esetekben az
általános matematikai eljárást kell alkalmazni.
Ha |x y z w| az elmozdított pont homogén koordinátáit
jelöli, |x y z w| pedig a pont eredeti helyét leíró koordináta négyes és Mr
a transzformációs mátrix, úgy |x y z w|= |x y z w|.Mr.
Szorzzuk meg jobbról az egyenlet mindkét oldalát a transzformációs mátrix
inverzével Mr-1-el:
|x y
z w|.Mr-1=|x y z w|.Mr.Mr-1=
|x y z w|.E= |x y z w|.
Eredményünk azt
jelenti, hogy általános esetben az inverz transzformációt az eredeti
transzformációs mátrix invertálásával nyert inverz transzformációs mátrixszal
kell végrehajtani.
A megjelenítés során a különböző elemi transzformációk sokféle
variánsban fordulhatnak elő, gyakran kombinálják a pont mozgástranszformációt a
koordináta tengelyek mozgatását leíró transzformációkkal is.
Számunkra, a domborzat térszerű
megjelenítése szempontjából a perspektív leképezési transzformációknak van
különösen nagy jelentősége, ezért megpróbáljuk röviden e módszer alapelveit is
összefoglalni.
A térbeli tárgyakat a hagyományos, mesterséges
sztereoszkópiát nem alkalmazó, számítógépek a képernyő síkjára képezik le. Ahhoz hogy a számítógép kitalálja a
képernyőn megjelenítendő pontokat arra van szükség, hogy ismerje a tárgy, a
szem és a képernyő kölcsönös helyzetét.
A 4.34 ábra bemutatja a perspektív ábrázolásnál használt
koordináta rendszereket.
A szemlélt tárgy jellemző pontjai az Xv, Yv,
Zv úgy nevezett világ-koordináta
rendszerben kerülnek megadásra.
Ahhoz, hogy a tárgy képét a képernyőn megjeleníthessük
célszerű, ha a tárgyat sarokpontjai felhasználásával áttranszformáljuk a szem
koordináta rendszerbe. Ezt a transzformációt leképezési transzformációnak
nevezik és általánosságban ML-el jelölik.
A leképezési transzformációt tehát általánosságban az alábbi
kifejezéssel írhatjuk le:
|xs ys zs
w|=|xv yv zv w|.ML
|
|
(12).
|
A feladat lényege az ML kialakításában van.
Nézzük meg röviden milyen lépésekből áll a leképezési transzformáció (4.35
ábra).
Első lépésként eltoljuk a világ koordináta rendszer
kezdőpontját az észlelési pontba. Ha ennek koordinátái a világ koordináta
rendszerben xvs0,yvs0,zvs0,
úgy behelyettesítve a (6) kifejezésbe:
|
|
(13).
|
Amint a transzformációs mátrixból is látható, koordináta rendszert mozgattunk
mozdulatlan tárgypontokhoz képest, ezért az eltolásokat negatív előjellel
szerepeltettük (13)-ban.
Második lépésként elforgatjuk a transzformálás alatt álló
koordináta rendszert -90o-al az xt tengely körül, azaz a (11) mátrixba
helyettesítsünk be =+90o-ot (mivel a koordináta tengelyt mozgatjuk
a forgatási szögeket is ellenkező előjellel kell helyettesítenünk):
|
|
(14).
|
A harmadik transzformációs lépésben az yt tengely
körül forgatjuk el a t indexű koordináta rendszert olymódon, hogy a
forgatás eredményeképpen a zt tengely messe a Zv
tengelyt. Az ábra alapján egyszerűen számolható, hogy
Mivel
|
|
, és
|
|
,
|
a (10) transzformációs mátrix esetünkben a következő alakot nyeri
|
|
(15).
|
A negyedik lépésben az xt tengely körül
forgatunk olymódon, hogy a zt tengely egyenese átmenjen a
világkoordináta rendszer kezdőpontján.
Az ábra alapján
|
|
és
|
|
, ahol
|
|
.
|
Mivel és a (11) típusú transzformációs
mátrixot esetünkre a következő alakban írjuk fel:
|
|
(16).
|
Utolsó transzformációnk a zt tengely
irányának megfordítását célozza, mivel az eredményül kapott szem-koordináta
rendszer pozitív z tengelye mindig a szemlélt tárgy irányába mutat. E
forgatást olyan (7) típusú skálázó mátrixszal végezhetjük, melynek z
irányú skála faktora -1. A fentiek szerint nyert mátrix a következő:
|
|
(17).
|
A szemlét tárgy jellemző pontjainak koordinátáit, melyeket
eddig csak a világkoordináta rendszerben ismertünk, a transzformációs mátrixok
segítségével az alábbi formulával képezhetjük le a szem-koordinátarendszerbe:
|xsyszsw|
= |xvyvzvw| . L1e
. L2r . L3r
. L4r . L5s
|
|
(18).
|
A leképezési transzformáció után a perspektív transzformáció már egyszerűen
végrehajtható, mivel nem kell mást tennünk, mint a szemkoordináta rendszerből
kiinduló vetítősugarakkal rávetíteni a tárgy jellemző pontjait a képernyőre, azaz meghatározni a vetítősugarak metszéspontjainak képernyő
koordinátáit. Rögtön meg kell jegyeznünk, hogy egyelőre csak a felület, illetve
test drótvázának perspektív ábrázolásával foglalkozunk.
|
4.36 ábra -
szabályos felület drótvázas perspektív képe
|
|
Szabályos testek
esetén a drótvázat a test élei alkorják. Felületek esetén a felületre illesztett,
alaprajzban szabályos vagy szabálytalan hálóval helyettesíthetjük a
drótvázat. Rögtön megjegyezzük, hogy amint azt a
4.36 ábra is bizonyítja, megfelelő nézőpont megválasztása esetén a szabályos
rácsháló kielégítően tükrözi a terep domborzatát.
|
A 4.36 ábrán gondoskodtunk arról is, hogy a
láthatatlan vonalak ne jelenjenek meg a képen. Hogy ez mennyire zavaró lehet
azt a 4.37 ábra drótvázas domborzatábrázolása bizonyítja. A képet az OSUMAP
oktatásra készített GIS szoftver 'SURFACE' (felület) parancsával készítettük,
majd raszter-vektor átalakítással csökkentettük a fájl méretét, a
transzformáció azonban, feltehetőleg a rendszer durva pixelfelbontása
következtében, az ábra hátsó részén láthatóan nem teljesen birkózott meg a
problémával.
|
|
4.37 ábra -
terep felszín drótvázas perspektív képe
|
|
A dróthálós domborzatmegjelenítés valóság
kifejező hatása tovább javítható ha a domborzat perspektív képére rávetítjük
valamely tematikus fedvény képét.
|
4.38 ábra -
terep felszín drótvázas perspektív képére vetített földhasználati réteg
|
|
Mivel továbbra is vonalakkal ábrázoljuk a
felszínt, a rávetítés úgy történik, hogy azok a vonalszakaszok, melyek
valamely területi objektum belsejében haladnak felveszik a kérdéses területi
objektum megjelenítésére használt színt. A 4.38 ábrán a 4.37 ábrán már
bemutatott domborzatra rávetítettük a vizsgált terület növényzetét tartalmazó
fedvényt. A műveletet az OSUMAP 'DRAPE' elnevezésű utasításával végeztük.
|
A sík vetületben párhuzamos vonalak a terepmagasságok hatására
vonalanként összefüggő háromdimenziós egyenes sereggé változnak. A fedvény
illesztés következtében az egyenesek száma tovább nő, mivel ugyanannak az
egyenesnek két különböző tematikus foltba eső szakaszait a különböző színezés
miatt külön kell kezelni. A foltokkal való metszéspontokat a program célszerűen
még a síkvetületben meghatározza, majd az egyenesek térbelivé tétele után
számítja a kérdéses síkkoordinátákhoz tartozó magassági információt. A
drótháló perspektív ábrázolásának számításához tehát végpontjaikkal megadott
egyenes szakaszok állnak rendelkezésünkre.
Első feladatként a programok a magasságok és folt
metszéspontok figyelembe vételével kiszámítják az egyenes szakasz végpontok
világ koordinátáit, majd második lépésben a (18) transzformáció
segítségével ugyanezen pontok szemkoordinátáit. A későbbi összekötési
információ rögzítését már a transzformáció előtt el lehet végezni, mivel az
összekötendő egyenes szakaszok végpontjainak jelölése a transzformációk után
sem változik. Harmadik lépésben történik a pontok rávetítése a
képernyőre, azaz a tulajdonképpeni perspektív transzformáció.
A 4. 39 ábrán függőleges (vagy vízszintes) síkra vetítjük a P(xs,ys,zs)
szem koordináta rendszerben megadott pontot a szem koordináta rendszer
kezdőpontjával összekötő egyenes (azaz a perspektív vetítősugár)
képét. Ha a képernyő szem koordináta rendszerben kifejezett z
koordinátáját (azaz a képernyő merőleges távolságát a szemponttól) zse-vel
jelöljük, úgy a kérdéses pont képernyő koordinátáit a
következő kifejezésekből számíthatjuk:
|
|
(19).
|
|
4.39 ábra - a
perspektív vetítősugár képe a függőleges síkon
|
Mivel a transzformáció eredményeit a képernyőn kívánjuk
megjeleníteni célszerű az e indexű metrikus koordinátákat a képernyő
koordináta rendszer pixelben kifejezett koordinátáiba átalakítani. Jelöljük a
képernyő magasságát M-el, szélességét SZ-el, tételezzük fel, hogy
a képernyő bal alsó sarkának mindkét pixelkoordinátája 0, a jobb felső sarok
pixelértékei pedig , akkor a vizsgált P' pont
pixelben kifejezett képernyő koordinátáit az alábbi kifejezések szolgáltatják:
|
|
(20).
|
A drótvázat térbeli egyenesek alkotják, melyek perspektív
vetületei is egyenesek. Ha az egyenesek végpontjait a (20) szerint a képernyőre
vetítjük, úgy a képernyőre vetített pontokat összekötve megkapjuk perspektív
vetületüket. Ez azonban csak akkor igaz, ha a kérdéses pontok a vetítési
gúlán belül helyezkednek el (4.40 ábra a
részlet).
Készítsük el a vetítési gúla metszetét az YsZs
síkkal (4.40 ábra b részlet). A gúla felső és alsó alkotójának
szöge a Zs
tengellyel
|
|
, azaz a felső alkotón elhelyezkedő pontokra
felírható, hogy
|
|
.
|
Hasonló meggondolásokból kiindulva az alsó alkotón
elhelyezkedő pontokra igaz, hogy
|
. Ezek szerint annak egyik feltétele, hogy a
|
pontok a vetítési gúlán belül helyezkedjenek el az, hogy
|
|
(21).
|
Ha elkészítjük a vetítési gúla metszetét az XsZs
síkkal (4.40 ábra c részlet), úgy egyszerűen belátható, hogy azok a pontok lesznek a vetítési gúlán belül,
melyekre fennáll a
|
|
(22)
|
feltétel.
|
4.40 ábra - a
vetítési gúla geometriája
|
A fenti meggondolások alapján tehát a (21) és (22)
segítségével kiválaszthatjuk azokat a pontokat, amelyek a
vetítési gúlán belül vannak, tehát
a képernyőn megjelenítendők.
Nem ilyen egyszerű azonban a helyzet az egyenesekkel. Mielőtt ezek részletesebb
vizsgálatára rátérnénk nem szabad elfelejtenünk, hogy egyenes szakaszokkal
és nem végtelen hosszú egyenesekkel van dolgunk.
Első lépésben megvizsgáljuk a (21) és (22) segítségével, hogy
az egyenes végpontjai belül vannak-e a vetítési gúlán vagy sem. Három eset
lehetséges:
- Mindkét pont
a gúlán belül van. Ebben az esetben levetítjük a pontokat a képernyőre és
vetületük összekötésével nyerjük a vonal perspektív képét.
- Az egyik
végpont a gúlán belül van, míg a másik végpont a gúlán kívül. Ebben az
esetben biztosak lehetünk, hogy az egyenes szakasz egy részének lesz
perspektív képe a képernyőn. Azt a műveletet, mely az egyenes szakasz egy részét
leválasztja vágásnak nevezzük.
- Mindkét
végpont a gúlán kívül található. Ez a feltétel nem zárja ki csak lehetővé
teszi, hogy az egyenesnek ne legyen perspektív képe a képernyőn.
A 3. eset megoldási lehetőségeit a 4.41 ábrán vázoltuk fel.
|
4.41 ábra - a
vetítési gúlán kívüli végpontok esete
|
Ahhoz, hogy a vágást akár a második, akár
a harmadik esetben el tudjuk végezni meg kell határoznunk a vágási
gúlát alkotó síkok egyenleteit. Ha a függőleges síkokat az ábra szerint
1-el és 2-vel, a vízszintes síkok közül a felsőt 3-al, az alsót 4-el jelöljük
(a vízszíntes síkok jelölését a zsúfoltság csökkentése miatt az ábrán elhagytuk),
úgy egyenleteik az alábbi alakot nyerik:
|
|
(23).
|
A két pontjával adott egyenes egyenletrendszerét az analitikus
geometria az alábbi alakban adja meg:
|
|
(24),
|
ahol az 1,2 indexek az első és második pontot
jelölik.
A 2. esetben, tehát amikor az egyik pont a gúlán
belül, a második pedig azon kívül van a (23) és (24) egyenletek
felhasználásával kiszámíthatjuk az egyenes metszéspontjait a síkokkal.
A (24) rendszer azonban nem egyenes szakaszokat
hanem végtelen hosszú egyeneseket ír le, a (23) egyenletek pedig szintén
tetszés szerinti értékeket vehetnek fel y illetve x értelemben.
Ezért kétféle probléma is felmerül: a gúlán
belüli pontból kiindulva az egyenes nem csak a másik adott pont irányába, hanem
az ellenkező irányban is metszi a gúlát, másfelől az egyenes a gúlán kívül is
metszi a gúlát alkotó síkok valamelyikét. A problémákat a 4.42 ábrán a Z
tengelyre merőleges metszetben próbáltuk érzékeltetni.
|
4.42 ábra - a
vetítési gúlán kívüli és belüli végpontok esete
|
|
|
A metszéspontok kiszámítása után először azt
kell eldöntenünk, hogy a pontok az egyenes szakaszon belül vannak-e. Ezt
egyszerűen úgy dönthetjük el hogy metszéspontonként megnézzük, hogy a kérdéses i-edik
metszéspont valamelyik koordinátája a végpontok megfelelő koordinátái
által határolt szakaszra esik-e, azaz az i-edik metszéspont a P1,P2
egyenes szakaszon van ha a
|
|
(25)
|
egyenlőtlenség teljesül.
A szakaszon lévő metszéspontok közül ezután a (21) és (22)
kifejezések segítségével kiválasztjuk azokat, melyek a gúlán helyezkednek el,
majd a (20) kifejezés felhasználásával nyerjük a képernyőn a látható egyenes
szakaszvégpontok képkoordinátáit, melyek összekötésével kapjuk a drótvázat
alkotó egyenes darabokat.
A gyakorlatban nagyon
zavaró lehet, ha a látható és láthatatlan vonalak egyaránt leképződnek a
képernyőn. Gondoljunk arra, hogy hagyományos grafika
esetén is igyekszünk szaggatott vonallal megkülönböztetni a nem látható éleket.
A 4.43 ábrán három pontot vetítettünk képernyőre. Mivel a
pontok egy vetítő sugáron helyezkednek el mindhárom pont a képernyő ugyanazon a
helyén jelenik meg. Az hogy
közülük melyik látható attól függ, hogy melyik van a legközelebb a képernyőhöz. Ezt a közelséget a zs értékkel is kifejezhetnénk, de
ebben az esetben a vizsgálatokat (beleértve két pontot összekötő egyenes
vizsgálatát is) különböző hajlásszögű ferde vetítősugarakon kellene végezni.
Sokkal egyszerűbb az ernyő koordináta rendszer kibővítése a
Ze tengellyel, mivel ebben az esetben a képsíkra merőleges
vetítősugarak mentén kell a távolságokat meghatározni. Az ernyő
koordinátarendszer kibővítése alatt egy olyan transzformációt értünk, mely
eredményeképpen a transzformált pont x és y koordinátáját
továbbra is a (19) kifejezésekből nyerjük. A pont ernyő koordináta rendszerben
kifejezett z koordinátáját abból a feltételezésből kiindulva nyerjük,
hogy a szemkoordináta rendszerben lévő síkok az ernyő koordináta rendszerben is
síkokká transzformálódjanak. Igazolható, hogy ez elérhető, ha a transzformált z
koordináta kielégíti az alábbi kifejezést:
|
|
(26).
|
Az és megválasztásánál abból
az elvi meggondolásból kiindulva, hogy a szemkoordináta rendszerben nagyobb z-nek
az ernyő koordináta rendszerben is nagyobb z feleljen meg, előjelét
negatívnak kell vennünk, egyébként értéküket praktikus meggondolásból vezetjük
le. Azt akarjuk ugyanis elérni, hogy ze értéke csak a intervallumra
legyen meghatározott, mégpedig olymódon, hogy az alsó határon 0, a felső
határon 1 értéket vegyen fel. Ez az értéktartomány összhangban van az xe,ye
(19)-ben értelmezett -1, +1 értéktartományaival. A teljes perspektív
transzformációt felírhatjuk a homogén koordinátákkal is az alábbiak szerint:
Legyen
|
|
a képernyő szélességének és magasságának
viszonya és
|
|
,
|
|
|
|
|
|
akkor
|
|
(27).
|
Nem nehéz kimutatni, hogy a (27)-ben a (26)
szabad paramétereit a következő értékekkel vettük figyelembe:
|
.
|
A (27) kifejezést egyszerűbben számíthatjuk, ha a műveleteket
egy vektor-mátrix szorzásra majd az azt követő osztásokra redukáljuk:
A vágási határokat az osztás előtti
koordináták felhasználásával az alábbi egyenlőtlenségek szolgáltatják:
|
|
(31).
|
Mivel a feltételezésünk szerint a leképződő
pontok ze koordinátái 0 és 1 közé esnek, a leképezésből z
értelemben kieső pontok vágására a
|
|
(32)
|
egyenlőtlenséget használjuk. Nem igényel további magyarázatot, hogy azokra az
esetekre, amikor az egyenes szakasz nem mindkét végpontja kerül leképezésre a
(23), (24), (25) kifejezések továbbra is használhatók, de lehetőségünk van arra
is, hogy e kifejezéseket is átírjuk a w-vel történő osztás előtti, index
nélküli koordináta rendszerbe.
Az elmondottak alapján meg tudjuk határozni, hogy azonos xe,ye
képernyő koordinátájú pontok közül melyik látszik, az igazi probléma azonban az, hogy a síklapok miként
takarják a többi geometriai elemet.
A megoldásnak különböző lehetőségei vannak. Ismertek geometriai megoldások, melyek a
testet határoló síkidomok (sokszögek) kölcsönös helyzetét vizsgálják.
A vizsgálat első lépésében kiválasztják a hátsó határoló
lapokat alkotó sokszögeket, (azokat, melyek axe+bye+cze=0
egyenletében c>0), majd ezeket egyelőre figyelmen kívül hagyva
kiválasztják azokat a sokszögeket, melyek a képernyő síkjában nem metszhetik
egymást mivel az egyik legkisebb x vagy y koordinátája nagyobb mint a másik legnagyobb x
vagy y koordinátája. Ha az analóg vizsgálatot elvégezzük a z
koordinátákra is, úgy ki tudjuk választani azokat a sokszöglap párokat,
melyek egymást az ernyőkoordináta rendszerben nem metszik, s melyek
közül a nagyobb z-vel rendelkező az előtte lévőt nem takarhatja. További
vizsgálatot igényelnek azok a sík sokszöglapok, melyek a képernyő koordináta
rendszerben ténylegesen metszik egymást, mivel ezek a párok mindkét eleme
takarhat valamit a másikból.
A geometriai elveken
működő algoritmusok lényege tehát abból áll, hogy rendezéssel kiválasztják a
problémamentes eseteket és a részletes vizsgálatot csak a bonyolultabb esetekre
alkalmazzák. Tulajdonképpen ezek a módszerek nem mások
mint a 10.3 pontban az egyenes szakaszok metszésével
kapcsolatban bemutatott síkbeli algoritmusok térbeli kiterjesztései. Különösen előnyös a geometriai
megközelítés konvex poliéderek esetén, ugyanis igazolható, hogy ha e testek
valamelyik lapjának egyik része látszik, úgy az egész lap látszik.
Természetesen a tétel fordítottja is igaz.
A számítógépek memória kapacitásának és műveleti
sebességének rohamos növekedésével párhuzamosan nő a kevésbé kifinomult szisztematikus módszerek térhódítása. Ilyen módszernek nevezhető a korreláció nélküli
mélységpuffer algoritmus.
Első lépésként rendeljünk minden sík sokszöglaphoz egy intenzitás vagy színértéket. A következő lépésben deklarálunk két mátrixot, melyek elemszáma
megegyezik a képmátrix pixel számával: , ezek a mátrixok fogják tárolni
a látható pontok z értékeit, illetve egy kérdéses z-hez tartozó
síklap intenzitását vagy színét.
A feladatunk az lesz, hogy minden pixelre a neki megfelelő x,y értékek
felhasználásával kiszámítsuk az összes olyan sík sokszöglap z
koordinátáját, amelynek van ilyen x,y koordinátájú pontja, és -nek
a kezdeti 1 érték után akkor adunk újabb z értékét, ha a következő
poligon megfelelő pontjához kisebb z érték tartozik. Az aktuális Zij
értéknek megfelelően átállítjuk értékét is a háttérnek megfelelő
kezdeti értékéről és végeredményképpen egy olyan mátrixot kapunk, mely
tartalmazza valamennyi képpont szürkeségi értékét vagy színét.
Talán az algoritmus rövid felvázolása alapján is belátható, hogy a módszer
tárolási igénye jelentős (valamennyi sík sokszöglap egyenletét tárolni
kell), de a műveleti igény sem jelentéktelen, hisz minden képpontban meg
kell vizsgálni valamennyi sokszöglapot. A fenti hátrányok csökkentésére sokféle
módszert dolgoztak ki, ezek tárgyalása azonban túlnő könyvünk keretein. Az
érdeklődők a [8] és [9] monográfiákban találhatnak
további részleteket.
Az elmondott eljárások közvetlenül jól használhatók a 3D-s
rajzoló (CAD) szoftverekben, de továbbfejlesztésre szorulnak ahhoz, hogy
eredményesen alkalmazhatók legyenek a szabálytalan felületek térbeli
ábrázolásakor. A bevezetőben már láttunk arra példát, hogy a terepfelszín
térbeli ábrázolásának egyik eszköze az lehet, ha a felszínre vízszíntes
vetületben szabályos vonalhálózatot fektetünk, majd a vonalakat a DTM
segítségével egyenes szakaszokból álló térbeli sokszögekké alakítjuk és
képezzük ezek perspektív képét.
Megjegyzéseit
E-mail-en várja a szerző: Dr Sárközy Ferenc