banner

Benutzerdoku

Allgemeines

Nach erfolgreichem Starten der Applikation, sieht man das User Interface. Der erste Schritt ist klarerweise das Laden eines Datensatzes.

applikation

Laden eines Datensatzes

Über das Menü "File" > "Open" ist es möglich einen Datensatz zu laden. Die Datensätze haben das Fileformat .rsf, das von Danny Holten, dem Autor des Papers "Hierarchical Edge Bundles", in seiner Applikation Extravis verwendet wird. Zu dieser Applikation werden eigene fiktive Datensätze und 2 Datensätze von Extravis (Ausführungspfad von JHotDraw - Java GUI Framework für technische und strukturierte Grafiken ("jhotdraw-3drawings-5figures.initial.rsf") und JPacman - Applikation für Lernzwecke in einer Softwaretesting-Lehrveranstaltung an der Technischen Universität Delft ("pacman-4moves-food-8moves-die-quit-start-2moves-wall.initial.rsf")) mitgeliefert. Nach dem Laden des Datensatzes wird der Datensatz so auf dem Bildschirm dargestellt, dass all seine Knoten zu sehen sind.

Benutzerinteraktion

Um den geladenen Datensatz besser erforschen zu können, kann man in die Darstellung hineinzoomen und diese verschieben:

Relation Parameters

Mit Hilfe der Relation Parameters ist es möglich die Darstellung der Adjazenzrelationen (B-Splines) zu verändern.

Bündelstärke β

Durch Variieren der Position des Sliders am linken oberen Rand der GUI kann die Bündelstärke verändert werden. Befindet sich der Slider ganz links, so ist die Bündelstärke gleich 0 und die Kanten werden als gerade Linien zwischen den Knoten gezeichnet. Ist dieser ganz rechts, so ist die Bündelstärke 1 und die Kanten werden als B-Splines mit uniformem Knotenvektor gezeichnet, wobei sämtliche Knoten welche sich auf dem Pfad zwischen den entsprechenden Knoten befinden als Kontrollpunkte dienen. Für alle Sliderpositionen zwischen linkem und rechtem Rand wird das dem jeweiligen B-Spline zugrunde liegende Kontrollpolygon aus dem ursprünglichen Kontrollpolygon berechnet und der B-Spline mit Hilfe des neu berechneten Kontrollpolygons gezeichnet.

bundling

Show Relations

Wenn diese Checkbox ausgewählt ist (Hackerl ist zu sehen), so werden die Adjazenzrelationen (B-Splines) dargestellt.

Transparency

Wenn diese Checkbox ausgewählt ist (Hackerl ist zu sehen), ist das Alpha Blending aktiviert. Je länger eine B-Spline ist, desto durchsichtiger (transparenter) wird sie gerendert. Dadurch werden kurze B-Splines hervorgehoben und es ist möglich bei aktiviertem Alpha Blending die einzelnen B-Splines in einem Bündel voneinander zu unterscheiden.

transparency

Remove LCA

Durch Anhaken dieser Checkbox wird aus Kontrollpolygonen, welche aus mehr als drei Kontrollpunkten bestehen, der LCA (Least Common Ancestor) entfernt. Beim LCA handelt es sich um jenen Vorfahren der beiden adjazenten Knoten, welcher in der Hierarchie am weitesten oben liegt. Das Entfernen des LCA macht sich z.B. beim Radial Tree dadurch bemerkbar, dass die B-Splines nicht so stark gen Mitte gezogen werden. Aus Kontrollpolygonen, welche aus nur drei Kontrollpunkten bestehen wird der LCA grundsätzlich nicht entfernt, da ansonsten nur noch eine Gerade dargestellt werden kann und es so zu Mehrdeutigkeiten kommt.

lca

Tree Parameters

Mit Hilfe der Tree Parameters kann man die Darstellung der hierarchischen Strukturen steuern. Die hierarchischen Strukturen können als Radial Tree, Balloon Tree oder als Rooted Tree dargestellt werden.

Radial

Wenn dieser Radio Button ausgewählt ist, dann werden die hierarchischen Strukturen als Radial Tree dargestellt. Beim Radial Tree wird der Wurzelknoten in der Mitte des Baums (Radius 0) gezeichnet. Alle anderen Knoten werden auf konzentrischen Kreisen platziert, wobei der Radius proportional zur Hierarchieebene des Knotens ist (d.h. je größer der Radius ist, desto weiter unten (größere Tiefe) befindet sich der Knoten in der Hierarchie). Diese Darstellungsart nutzt den vorhandenen Platz effizienter wie der Rooted Tree. In der Benutzerstudie von Danny Holten, war diese Darstellungsform am beliebtesten.
Beim Radial Tree lag die Priorität auf einer Darstellung ohne Überlappungen mit gleichzeitig möglichst effizienter Nutzung des vorhandenen Platzes. Daher mussten Constraints bestimmt werden. Diese Constraints sind im Extremfall (Geschwisterknoten haben keine Kinder) die Schnittpunkte der Tangente durch den Knoten mit dem Kreis auf dem sich die Kindknoten befinden. Haben die Geschwisterknoten Kinder müssen zusätzliche Constraints gefunden werden, nämlich die beiden Bisector Limits, damit es mit den Geschwisterknoten der Kinder keine Überschneidungen gibt. Eine genauere Erklärung findet sich hier. (Achtung: Die Formel für den ArcAngle dürfte nicht korrekt sein!)

radial_tree
radial_jhotdraw

Rooted

Wenn dieser Radio Button ausgewählt ist, werden die hierarchischen Strukturen als Rooted Tree dargestellt. Beim Rooted Tree wird der Wurzelknoten an oberster Stelle gerendert. Die Knoten der nächsten Hierarchieebene werden direkt unter der vorhergehenden Hierarchieebene dargestellt. Die Knoten, die zueinander in Parent-Child-Beziehung stehen, sind mittels gerader Linien miteinander verbunden. Diese Darstellungsart nutzt den vorhandenen Platz leider sehr ineffizient. Bei dieser Baumstruktur erkennt man sehr gut das Problem des Algorithmus, wenn viele Relationen zwischen kollinearen Knoten vorhanden sind.
In unserer Implementierung wird der Rooted Tree aus dem Radial Tree erzeugt, wobei der Radius der Hierarchieebene im Radial Tree der Tiefe im Rooted Tree entspricht und der Winkel im Radial Tree über die Länge des Kreisbogens im jeweiligen Kreissektor in eine Distanz umgerechnet wird. Die Wurzelknoten der Unterbäume werden anschließend gemäß der x-Positionen ihrer Kinder zentriert. Das Zentrieren kann allerdings die Reihenfolge der Geschwisterknoten durcheinander bringen. Sollte das der Fall sein, erfolgt keine Zentrierung.

rooted_tree
rooted_jhotdraw

Balloon

Wenn dieser Radio Button ausgewählt ist, dann werden die hierarchischen Strukturen als Balloon Tree dargestellt. Beim Balloon Tree wird der Wurzelknoten in der Mitte des Baums gezeichnet. Die einzelnen Unterbäume des Knotens werden als Kreise dargestellt. Diese Darstellungsart nutzt den vorhandenen Platz effizienter wie der Rooted Tree. In der Benutzerstudie von Danny Holten, war diese Darstellungsform am zweit beliebtesten.
Beim Balloon Tree lag die Priorität auf einer Darstellung ohne Überlappungen, nicht jedoch auf eine möglichst effiziente Nutzung des vorhandenen Platzes. Die einzelnen Winkeln zwischen den Kindern in den Balloons sind daher gleich.

balloon_tree

Show Nodes

Wenn diese Checkbox ausgewählt ist (Hakerl ist zu sehen), werden die im Baum befindlichen Knoten angezeigt. Andernfalls werden diese nicht gerendert.

Show Hierarchy Lines

Wenn diese Checkbox ausgewählt ist (Hackerl ist zu sehen), so sind die Kanten der hierarchischen Strukturen zu sehen.

Show Hierarchy Circles

Wenn diese Checkbox ausgewählt ist (Hackerl ist zu sehen), dann sind die Kreise beim Radial bzw. Balloon zu sehen. Beim Rooted Tree ist diese Checkbox deaktiviert (ausgegraut).