Portál AbcLinuxu, 4. května 2025 09:12

Geomview - váš interaktivní 3D prohlížeč

10. 10. 2003 | Miroslav Andrle
Články - Geomview - váš interaktivní 3D prohlížeč  

Program, pomocí něhož můžete prohlížet a manipulovat s trojrozměrnými objekty (samo sebou i dvourozměrnými).

Úvod

Jediným předpokladem je mít tyto objekty popsané v OOGL (Object Oriented Graphics Library) formátu. K programu navíc existuje velké množstvi externích modulů, které ho dělají ještě zajímavějším. S objekty můžete nejen pohybovat, či je zvětšovat a zmenšovat, ale i měnit barvu stěn, tlouštku hran, barvu pozadí, zobrazit pouze hrany bez stěn, učinit svůj objekt průhledným, či jiné efekty. Můžete si vybrat z několika druhů projekcí nebo místo obvyklého eukliedovského prostoru pracovat třeba v hyperbolickém.

Samotný program má slušnou sbírku již popsaných objektů. Od krychlí, různých mnohostěnů až třeba po konvici na čaj. Mimo jiné můžete lehce přesvědčit komerční programy Maple a Mathematica, aby ukládaly 3D data v OOGL formátu (úplný seznam programů podporující výstup do Geomview je zde). Vše co vidíte, se dá uložit bud opět do OOGL formátu nebo jako postscript či PPM. Úplný výčet možností uložení vaší práce najdete zde. Pokud si přiinstalujete modul StageTools bude nabídka grafických formátů mnohem větší a navíc budete schopni vytvářet animované GIFy nebo MPEG video.

Jak jsem se dostal k Geomview

Během mých doktorských studií mi můj školitel dal za úkol zkontrolovat článek týkající se Danzerova pokrytí - jedná se o pokrytí celého 3D prostoru pouze pomocí otáčení a posouvání 4 čtyřstěnů a jejich zrcadlových obrazů. Navíc ještě každý čtyřstěn vynásobený konstantou 'tau' (pro zájemce tau=(1+sqrt(5))/2, ano je to poměr ve zlatém řezu) se dá opět napsat jako sjednocení původních vhodně otočených a posunutých čtyřstěnů (říkáme o tomto pokrytí, že je soběpodobné). Tato posunutí a otočení byla posána vzhledem k 31 význačným osám icosahedronu, které autor článku rovněž popsal. Mým úkolem bylo právě zkotrolovat, jestli v zápisu transformací všech čtyřstěnů není někde chyba, jelikož článek byl určen k publikaci.

Nevědel jsem, co dělat. Nejdříve jsem si udělal model z papíru, ale nakonec mne zachránilo právě Geomview. Naprogramoval jsem si obecné otočení a posunutí, prohnal tímto programem, jehož výstupem byl právě OOGL formát, vždy konkrétní těleso a jeho rozklad a v Geomview jen vizuálně kontroloval, zda jsou objekty identické. Šlo to určitě udělat i jinak, ale takhle jsem si mohl opravdu všechny ty objekty pořádně osahat. Nakonec jsem objevil i chybu v jednom z těch vzorečků.

O co tedy jde

Konec povídání a podívejme se, jak to tedy funguje. Pokud někoho straší spojení OOGL formát, vězte, že jde o velmi přirozený popis objektů. Nebudeme zabíhat do podrobností, více se dá nalézti třeba zde, ale ukážeme si pár příkladů. Popsat čtverec můžeme pomocí následujícího souboru.

QUAD   #toto je klíčové slovo, říkající, že
       #následuje 4*n vrcholů pro n čtyřúhelníků
-1 -1 0   #souřadnice 1. vrcholu
 1 -1 0   #souřadnice 2. vrcholu
 1  1 0   #souřadnice 3. vrcholu
-1  1 0   #souřadnice 4. vrcholu

Trojúhelník bychom získali například zapsáním stejného 3. a 4. vrcholu nebo použitím jiného klíčového slova.

Popsat krychli není o mnoho těžší.

OFF #klíčové slovo, jedná se o mnohostěn
8 6 12 #počet vrcholů, stěn a hran
-0.5   -0.5   -0.5   # souřadnice 0. vrcholu
 0.5   -0.5   -0.5   # souřadnice 1. vrcholu
 0.5    0.5   -0.5   # souřadnice 2. vrcholu
-0.5    0.5   -0.5   # souřadnice 3. vrcholu
-0.5   -0.5    0.5   # souřadnice 4. vrcholu
 0.5   -0.5    0.5   # souřadnice 5. vrcholu
 0.5    0.5    0.5   # souřadnice 6. vrcholu
-0.5    0.5    0.5   # souřadnice 7. vrcholu
#následuje popis stěn, první číslo znamená počet vrcholů ve stěně
#následující čtveřice představuje konkrétní čtyři vrcholy
#poslední trojice je barva stěny ve formátu RGB
4   3 2 1 0   0.800 0.098 0.098
4   4 5 6 7   0.098 0.647 0.400
4   2 3 7 6   0.098 0.098 0.800
4   0 1 5 4   0.898 0.600 0.000
4   0 4 7 3   0.000 0.600 0.800
4   1 2 6 5   0.498 0.000 0.898

Úplný výčet podporovaných klíčových slov je:

Instalace

Domovská stánka projektu je http://www.geomview.org, kde se můžete dozvědět více o historii a třeba i výslovnosti Geomview. (Při vyslovování, prosím, přízvuk na první slabice.) Poslední verze je geomview-1.8.1. Můžete stáhnout bud celý zdrojový kód nebo rpm či deb balíček. Bohužel debianní balíček obsahuje pouze holé Geomview, což je trochu škoda. Rozhodně si vyberte rpm balíček s pluginy - je tam jeden i bez nich. Pokud chcete či musíte program překládat, budete potřebovat OpenGL (to má dnes snad každý, kdo nemá, může zkusit třeba Mesa), dále Motif (nejlépe OpenMotif eventuálně LessTif). Ti, co budou chtít používat i externí moduly (což vřele doporučuji), budou potřebovat i XFORMS GUI knihovnu.

Stáhneme tedy i ty moduly: The Orrery - simulátor sluneční soustavy, Maniview a StageTools (umožnují vytvářet matematické objekty přímo v Geomview, ale hlavně snímat zobrazené objekty do spousty grafických formátů, eventuálně vytvářet animované GIFy či video).

Moduly Orrery a Maniview nakopírujeme do $GEOMROOT/src/bin, zdrojáky XFORMS do $GEOMROOT, StageTools doinstalujeme později. Veškeré výše zmíněné programy se dají pohodlně stáhnout z http://www.geomview.org/download/. Instalaci provedeme klasicky (předpokládám, že OpenGL a Motif už jsou v systému):

./configure
make
make install

U některých verzí Motifu je třeba přesněji specifikovat knihovny, první řádek zaměníme za MOTIFLIBS='-lXm -lXp' ./configure. Nyní můžeme nainstalovat výše zmíněné StageTools. Podrobný návod najdete zde. Snad jen zmíním, že k úspěšné instalaci je zapotřebí míti TCL/TK ve verzi 8.0 či vyšší, ImageMagick, mpeg_encode a gifmerge.

Ovládání

Po napsání příkazu geomview (můžeme rovnou specifikovat jména souborů, které má Geomview otevřít při spuštění, více v man geomview) se spustí samotný program. Já jsem napsal geomview cone.off icosa.off, a proto vidím kužel dohromady s icosahedronem.

Geomview, hlavní okno  Geomview, nabídka Tools

Geomview, Camera

Po spuštění se vám standardně otevřou tři okna. Hlavní okno, okno Tools, kde si pouhým klikáním můžete zvolit z nabízených operací a okno Camera, kde se objekty zobrazují. Zmíním pouze základní ovládání, podrobný popis by vydal ještě na pár dílů. Velmi se mi osvědčilo používání klávesových zkratek, které jsou vždy uvedeny v hranatých závorkách u konkrétní položky v menu.

Pomocí File/Open si můžeme otevřít libovolný počet objektů. Veškeré operace můžeme bud aplikovat na všechny objekty, World, nebo na konkrétní vybraný. Vybrat ho můžeme v hlavním okně nebo dvakrát kliknout pravým tlačítkem v zobrazovacím okně. Pokud objektem otáčíte či posouváte, můžete použít levé či prostřední tlačítko myši. U levého bude váš pohyb záviset na posunu myši, u prostředního se těleso bude otáčet/posouvat podél osy kolmé k obrazovce.

Závěr

Myslím si, že se jedná o kvalitní program dostupný pouze na unixové platformě, jehož možnosti se skoro nedají využít (zvláště po přidání všech volně dostupných modulů). I když byl program původně určen spíše pro akademickou půdu, měl by najít uplatnění i v jiných oblastech. Já osobně ho vždy přidávám když instaluji Linux na počítač. Vyplatí se to, i kdyby si měly dětičky majitele ve volném čase otáčet krychličky s jehlanama a zlepšovat si u toho představivost.

Někoho by mohla odradit malá podpora grafických formátů v samotném Geomview. Na druhou stranu průměrný prohlížeč vám z PPM udělá libovolný formát. Nebo to lze vyřešit přidáním modulu StageTools, který stejně bude pro většinu uživatelů nutností.

Potenciálního uživatele musím upozornit i na zákeřnosti uložení do postsciptového souboru - i když já jsem stejně do jiného formátu neukládal. Občas se mi stalo, že strana či hrana, která neměla být vidět, naopak překreslila něco, co vidět být mělo.

Kontaktoval jsem i vývojáře Geomview, kteří my vysvětlili, že je to dáno způsobem zápisu do postscriptu. Prostě všechny strany se přepočítají a v jakém pořadí se zapíší do postscriptu, v takovém pořadí se pak vykreslí na obrazovce. Pokud nezáleželo na přesné poloze objektu, stačilo někdy objekt malinko pootočit a uložil se správně. Jelikož Geomview generuje velmi přehledné postscriptové soubory, řešil jsem to nakonec přerovnáním nebo úplným zakomentováním nepotřebných stěn přímo v PS souboru.

Související články

Kulečníkové simulátory
Vektorový elegán Ipe
Geografické informační systémy

Odkazy a zdroje

www.geomview.org

Další články z této rubriky

Týden na ITBiz: Svět IT a burzy, umělá inteligence, Nvidia a outsourcing
Linuxové foto novinky: pozvolná evoluce
PCLinuxOS 2017.2 MATE - tak trochu zvláštní linuxová distribuce
Krátký pohled na Fedoru 25, Wayland a GNOME 3.22
Naprosto ničím nezajímavé Lubuntu 16.10

Diskuse k tomuto článku

12.12.2021 11:23 geebranz
Rozbalit Rozbalit vše Re: Geomview - váš interaktivní 3D prohlížeč
Odpovědět | Sbalit | Link | Blokovat | Admin
Highly recommended

couples counseling san diego ca

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.