Botanical Visualisation of Huge Hierarchies

InfoVis SS 2007

Markus Seidl (9255480, 935)

GenTree und BruderBaumMFC

Idee

In Ihrem Artikel "Botanical Visualisation of Huge Hierarchies" schlagen Kleiberg, Wetering und Wijk vor, natürliche Bäume als Vorlage für 3D Visualisierung von hierarchischen Daten zu verwenden. Für detaillierte Ausführungen über diesen Ansatz, sowie eine genaue Beschreibung des Algorithmus zur Erzeugung des Baumes, bitte den Artikel lesen. Aufgabe in der InfoVis war es nun, die wesentlichen Ideen des Artikels zu implementieren. Ich habe mich beim Wesentlichen vom Artikel inspirieren lassen, jedoch einige Änderungen vorgenommen. Die wichtigste Änderung betrifft die Darstellung von Dateien: Werden im Vorschlag von Kleiberg, Wetering und Wijk einzelne Dateien als Kegel auf Kugeln dargestellt, so wird im Vorliegenden auf die Darstellung einzelner Dateien verzichtet, da dies die Performance unnötig beschränkt.Ganze Verzeichnisse werden als Kugeln dargestellt. Der Radius der Kugeln ist direkt proportional zur Größe des Verzeichnisses, und kann im ganzen Baum verglichen werden. Die Äste hingegen werden, um Darstellbarkeit und möglichst geringe Überdeckung zu gewährleisten, bei jeder Abzweigung kleiner skaliert. Die Farbe der Kugeln gibt Auskunft über die Größe: Rot, Gelb, Grün, Braun.

Architektur, Verwendung, Download

Um eine Betrachtung ohne Performanceschwierigkeiten zu gewährleisten, wurde der Task in zwei Einzelprogramme zerlegt: GenTree und BruderBaumMFC.

GenTree liest ein in der Kommandozeile angegebenes Directory und dessen Unterverzeichnisse ein, und generiert daraus einen Baum in einem Inventor 2.1 ASCII Dokument, welches im Standard Output ausgegeben wird.

Aufruf: genTree startdirectory > filename.iv

Dieser Aufruf erzeugt den Baum ausgehend vom Directory startdirectory, und leitet die Ausgabe in das Textfile filename.iv um.

BruderBaumMFC kann ein OpenInventor (*.iv) File laden und darstellen. Die Implementierung ist hauptsächlich der SoWin Dokumentation unter http://www.coin3d.org/windows/tutorial/mfc/ "Using coin with MFC and Visual C++" entnommen. Die einzige Erweiterung ist die Möglichkeit, ein OpenInventor File zur Laufzeit zu laden, welche in BruderBaumMFC implementiert ist. Einziges "Problem" dabei war, den Unicode Filenamen für SoWin in einen ANSI String zu verwandeln .... Die Entscheidung für MFC MDI (MultiDocumentInterface) resultierte daraus, die in der Applikation genTree generierten Baumfiles nebeneinander betrachten und vergleichen zu können.

Download der Executables: gentree_BruderBaumMFC.zip (2mb)

Ergebnisse

Einfache Testbäume

Bild 1: Einfache Directorystrukturen, bis bla3 ohne Dateien

Data

Bild 2: Directory mit 31236 Dateien und 3379 Ordnern

Data Detail

Bild 3: Detail aus Bild 2

Bild 4: Weiteres Detail aus Bild 2

Bild 5: Weiteres Detail aus Bild 2