6 Implementace |
![]() ![]() ![]() ![]() |
Součástí diplomové práce je i aplikace, která demonstruje veškeré techniky popisované v textové části diplomové práce. Aplikace je určena pro platformu Win32 (subsystém GUI), používal a testoval jsem ji na operačním systému Microsoft Windows NT 4.0 Workstation. Kromě požadavku na velkou operační paměť neklade aplikace žádné speciální hardwarové nároky. Doporučená (a k výpočtům používaná) konfigurace je Intel Pentium II 300 MHz, 256 MB RAM.
Pro instalaci programu slouží instalační program Setup.exe umístěný v adresáři \OMR na instalačním médiu. Instalátor zkopíruje zvolené součásti do počítače, v registru doplní asociace souborů a vytvoří zástupce v nabídce Start. Program je možné odinstalovat standardním způsobem pomocí ovládacího panelu "Přidat nebo ubrat programy". Na instalačním médiu jsou dále umístěny digitalizované mapy pro účely testování v adresáři \Map a výsledky zpracování větších výřezů map v adresáři \Examples.
6.1 Popis programu z uživatelského hlediska
Aplikace umožňuje dvě základní činnosti: zpracovávat mapy mechanismem popsaným v kapitolách o předzpracování, rozkladu na tiskové barvy a úpravách rozložené mapy a prohlížet a porovnávat spočtené výsledky. Zpracování je rozděleno do kroků, které zhruba odpovídají zmíněným kapitolám textu. Každý krok obsahuje sadu nastavení (určujících postup a nastavení zpracování v rámci kroku) a spočtený výsledek. Spočtené výsledky jsou základem pro výpočet dalších kroků.
Krok "Vstupní data" umožňuje:
Krok "Předzpracování" umožňuje:
Krok "Rozklad na tiskové barvy" umožňuje:
Krok "Úpravy rozloženého obrazu" umožňuje:
Aplikace umožňuje zpracovávat mapu po krocích. Vzhledem k tomu, že u každého kroku je uložen výsledek zpracování, není nutné při změně nastavení kroku přepočítávat celý projekt, ale pouze modifikovaný krok. Projekt lze uložit do souboru včetně již spočtených výsledků, takže je možné výpočet projektu přerušit a opět se k němu vrátit bez nutnosti přepočítání celého projektu).
Obrázek 6.1
Pracovní plocha aplikace.
Pracovní plocha aplikace je zobrazena na obrázku 6.1. Uspořádána je obdobně jako ostatní aplikace pracující pod systémem Windows, proto nepovažuji za nutné ji podrobně popisovat. V případě nejasností o funkci položky nabídky či tlačítka by měly postačovat stručné informace zobrazované ve stavovém řádku.
Na tomto místě bych chtěl upozornit pouze na zobrazování nastavení a výsledků jednotlivých kroků zpracování. Příkazy pro tyto funkce nejsou obsaženy v nabídce - jsou dostupné přímo z okna se strukturou projektu. Zobrazení nastavení a výsledků lze provést dvojím způsobem: buď pomocí pravého tlačítka myši (zobrazí se lokální nabídka) nebo dvojitým stiskem levého tlačítka myši. Pokud budete chtít zobrazit náhled výsledků nespočteného kroku, krok se automaticky spočítá a poté se zobrazí náhled.
6.2 Popis implementace
Aplikace je naprogramována v jazyce Object Pascal, pro překlad aplikace jsem používal překladač Borland Delphi 4.01. Kromě zdrojových textů jsou k překladu nutné knihovny společnosti FINE, které implementují některé obecné funkce, speciální prvky prostředí a grafický systém pro vykreslování a zadávání objektů. Použití těchto knihoven je vázáno podmínkou na straně ii diplomové práce. Instalaci knihoven do integrovaného prostředí Delphi zvládne každý zkušenější programátor.
Na tomto místě zřejmě nemá smysl zabývat se podrobněji popisem zdrojového kódu. Veškeré principy a algoritmy jsem se snažil popsat v teoretické části dostatečně přesně, aby jejich implementace přirozeně vyplynula. V zájmu urychlení výpočtů je vždy vhodné provádět vyhodnocování podmínek v takovém pořadí, aby byl co nejdříve zřejmý její výsledek (např. u logického OR na první místo postavit tu dílčí podmínku, u které je její splnění nejpravděpodobnější).
Pro případ, že by někdo do programu zasahoval nebo jej doplňoval, uvedu jednoduchý návod, jak se zorientovat ve zdrojových textech:
6.3 Formáty souborů
Protože některé druhy souborů slouží pro předávání dat mezi různými aplikacemi, je nutné přesně definovat jejich strukturu. Aplikace OMR používá následující druhy souborů.
6.3.1 Rozklad na tiskové barvy
Soubory s rozklady na tiskové barvy jsou binární soubory s příponu pcl. Jejich zápis zajišťuje třída TMapBitmapStorage obsažená v souboru SysStorage.pas. Soubor se skládá z hlavičky a pole dvoubytových hodnot, každá z nich obsahuje bitovou masku popisující zastoupené tiskové barvy a jejich odstíny. Pole obsahuje šířka x výška položek uložených po řádcích, řádky nejsou doplňovány na sudou či jinou délku.
ofset | velikost | obsah | komentář | |
00 | 4 | 00000002h | počet bytů na pixel | |
04 | 4 | šířka mapy v pixelech | ||
08 | 4 | výška mapy v pixelech | ||
(+00 | 2 | ) | bitová maska popisující zastoupené barvy a chybu klasifikace - 0001h = LtYL, 0002h = DkYL, 0004h = LtGR, 0008h = MdGR, 0010h = DkGR, 0020h = LtBL, 0040h = DkBL, 0080h = LtBR, 0100h = DkBR, 0200h = BK, 0400h = příznak chyby |
Tabulka 6.1
Formát souboru pro uložení rozkladu na tiskové barvy.
6.3.2 Digitální model terénu
Soubory s rozklady na tiskové barvy jsou binární s příponu map. Soubor je složen z hlavičky, bloku bodových útvarů, bloku liniových útvarů a bloku plošných útvarů. Podrobnosti ohledně způsobu zanesení jednotlivých druhů objektů do digitálního modelu terénu naleznete v kapitole o mapách pro orientační běh, na tomto místě je pouze uveden způsob uložení digitálního modelu terénu do souboru.
ofset | velikost | obsah | komentář | |
00 | 4 | 191D14E3h | identifikátor souboru | |
04 | 4 | 00010000h | verze souboru 1.0 | |
08 | 4 | ofset bloku bodových útvarů | ||
12 | 4 | ofset bloku liniových útvarů | ||
16 | 4 | ofset bloku plošných útvarů | ||
20 | 4 | měřítko mapy 1:N | ||
24 | 4 | datum mapování DDMMYYYY | ||
28 | 4 | globální umístění X | ||
32 | 4 | globální umístění Y | ||
36 | 4 | globální umístění Z | ||
40 | 4 | délka názvu mapy (včetně ukončovacího znaku \0) | ||
44 | ? | název mapy ukončen znakem \0 | ||
?? | 4 | délka komentáře (včetně ukončovacího znaku \0) | ||
?? | ? | komentář ukončen znakem \0 | ||
00 | 4 | počet položek seznamu bodových útvarů | ||
(+00 | 2 | typ bodového útvaru | ||
+02 | 2 | vlastnosti bodového útvaru | ||
+04 | 4 | souřadnice X středu bodového útvaru | ||
+08 | 4 | ) | souřadnice Y středu bodového útvaru | |
00 | 4 | počet uzlů | ||
(+00 | 2 | rezervováno | ||
+02 | 2 | vlastnosti uzlu | ||
+04 | 4 | souřadnice X uzlu | ||
+08 | 4 | ) | souřadnice Y uzlu | |
?? | 4 | počet liniových útvarů | ||
(+00 | 2 | typ liniového útvaru | ||
+02 | 2 | vlastnosti liniového útvaru | ||
+04 | 4 | index počátečního uzlu | ||
+08 | 4 | index koncového uzlu | ||
+12 | 4 | počet zlomů | ||
(+00 | 4 | souřadnice X zlomu | ||
+04 | 4 | )) | souřadnice Y zlomu | |
00 | 4 | počet vrcholů trojúhelníkové sítě | ||
(+00 | 4 | souřadnice X vrcholu | ||
+04 | 4 | souřadnice Y vrcholu | ||
+08 | 4 | ) | souřadnice Z vrcholu | |
?? | 4 | počet hran trojúhelníkové sítě | ||
(+00 | 2 | rezervováno | ||
+02 | 2 | vlastnosti hrany | ||
+04 | 4 | index prvního vrcholu hrany | ||
+08 | 4 | ) | index druhého vrcholu hrany | |
?? | 4 | počet plošných útvarů | ||
(+00 | 2 | typ plošného útvaru | ||
+02 | 2 | vlastnosti plošného útvaru | ||
+04 | 4 | index první hrany | ||
+08 | 4 | index druhé hrany | ||
+12 | 4 | ) | index třetí hrany |
Tabulka 6.2
Formát souboru pro uložení digitálního modelu terénu.