Programmieraufgabe im Rahmen der Lehrveranstaltung
VU Informationsvisualisierung SS 2005
Florian Sch�llhammer, 0325948
Obwohl es schon sehr viele Methoden gibt, um Graphen zu visualisieren, macht es dennoch Sinn, sich mit neuen Methoden auseinanderzusetzen, da jede ihre eigenen St�rken hat.
Diese Visualisierungs-Methode ist speziell geeignet, um (auch komplexe) Graphen einfach zu durchbrowsen um generelles Verst�ndnis des Netzwerkes zu erhalten. Es wird dazu ein Knoten ausgew�hlt, f�r den man sich interessiert. Da sich alle anderen Knoten des Netzwerkes kreisf�rmig um den ausgew�hlten Knoten im Zentrum anordnen, ist leicht zu erkennen, wie der Knoten im Zusammenhang mit dem Rest des Netzwerkes steht. Selektiert man nun einen weiteren Knoten, so rutscht dieser in ins Zentrum.
Um bei dieser Ver�nderung nicht den �berblick zu verlieren, wird die Bewegung aller Knoten animiert.
Wie schon erw�hnt, kann der Benutzer den interessierenden Knoten selbst w�hlen. Von diesem ausgehend wird dann ein Baum durch das restliche Netzwerk aufgebaut (Vorraussetzung daf�r ist nat�rlich, dass es der Graph zusammenh�ngend ist, es also einen Weg von jedem Knoten zu jedem anderen Knoten gibt)
Der ausgew�hlte Knoten wird dann im Mittelpunkt dargestellt, w�hrend die der generierte Baum schichtweise um ihn auf Kreisen dargestellt wird. Somit ist sofort ersichtlich, wieweit ein beliebiger Knoten des Netzwerks vom ausgew�hlten Knoten entfernt ist (man braucht nur nachschauen, auf welcher Schicht er liegt = entspricht dem k�rzesten Pfad)
![]() |
Abbildung 1: Knoten im Zentrum |
Nat�rlich ist es nun auch m�glich, einen anderen Knoten auszuw�hlen. Da man bei einer sprunghaften �nderung (der neue Knoten kommt ins Zentrum, ein Baum wird rund um ihn aufgebaut) die �bersicht verlieren w�rde, werden die Positions�nderungen animiert.
Wie man sich anhand der untenstehenden Graphiken leicht �berzeugen kann, w�rde es bei direkten Positions-Interpolation zu vielen �berkreuzungen kommen. Deshalb werden die Polarkoordinaten der Knoten berechnet und diese dann interpoliert.
![]() |
Abbildung 2: Interpolation der Kartesischen Koordinaten vs Interpolation von Polarkoordinaten |
Versuche zeigen, dass es f�r den Menschen einfacher ist, den �berblick zu behalten, wenn die Animation nicht in konstantem Tempo vollzogen wird, sondern es anfangs eine Beschleunigungsphase und am Ende eine Abbremsphase gibt. Dies kann mit Hilfe von trigonometrischen Funktionen realisiert werden.
![]() |
Abbildung 3: Verz�gerte Bewegung mittels Tangens |
Wie man sich gut vorstellen kann, ist es vorteilhaft, ein radiale Anordnung zu verwenden, da in h�heren Schichten der Umfang gr��er ist und somit auch mehr Knoten Platz finden - das ist deshalb gut, da der Baum ja immer breiter wird.
Den Platz den ein Knoten ben�tigt h�ngt von mehreren Kriterien ab:
![]() |
Abbildung 4: Platzallokation eines Knotens |
Ich verwende f�r das Programm eine allgemeine Import-Schnittstelle, so dass es m�glich ist, den Graph aus verschiedenen Quellen (XML, Datenbank, Textdatei, ...) zu lesen. F�r meine Anwendung habe ich dann auch einen XML-Importer f�r ein sehr einfaches XML-Document, welches den Graphen speichert, geschrieben.
Das Programm wurde C# als Window-Anwendung entwickelt. Es folgt eine kurze Beschreibung der Source-Files.
Node.csAufbau eines allgemeine Graphens
NodeTree.csErstellt Baum ausgehend von einem Knoten
NodeGraph.csGraphische Darstellung eines Knotens
GraphController.csSteuerung des Graphen
NodeImporter.csAllgemeine Schnittstelle zum Datenimport NodeImporterXml.csImporter f�r einfaches XML-Format |
![]() |
Abbildung 5: Screenshot 1 |
![]() |
Abbildung 6: Screenshot 2 |
![]() |
Abbildung 7: Screenshot 3 |