VU Informationsvisualisierung: "Visualization of Graphs using
Radial Layout Techniques"
Authors : Laura Fritz 9826587, Ivan Maricic 0130041
We implement some features from the paper "Animatied
Exploration of Dynamic Graphs with Radial Layout" (IEEE
InfoVis2001 Page(s): 43-50 by Ka-Ping Yee, Danyel Fisher, Rachna
Dhamija, Marti Hearst). This paper describes some approaches how to
animate a graph in a Radial Layout, to keep the animation
clearly arranged for the user.
We used OpenGL, GLUT and GLUI and we wrote it
in MS Visual C++ (.NET version).
We structured our programm in seperated modules:
This module just initialises and passes all other modules.
In Node all the properties of a single node in the Radial
Layout are established. For example the alignment of the node in the
Layout (angular width and distance to the focus), the color (RGB
values), the ID, the size of the node itself, all the adjacent nodes
of one node etc. etc.. Also the shape and appearance from the nodes
(material, lighting, blending) is set here.
In Graph the nodes for the graph are read in and connected
with their adjacent nodes.For example the start position is calculated
and the angle sector for the nodes. Also the lines between the nodes
are drawn in this module.
This module contains the interpolation of the polar coordinates and the
interpolation of the node-size and node-color.
This offers calculation and displaying of the rings for the Radial
Layout.
In the GLUT Callback Functions module the entire scene is
created/drawn, the mouse- and keyboard functions are declared/defined
and the object selection takes place there (which object was clicked
by the user to become the new focus node).
For more programm-details just look at our documentation.
We implemented some features from the paper and added some extra
features of which we thought that it would increase the usability
effect.
- For the animation of the nodes we implemented the interpolation
of the polar coordinates (instead of linear interpolation) to get
"rounder" smooth transitions of the node.
- In addition the nodes change their sizes relative to the radial
rings. That means, that the nodes become smaller when they move away
from the focus and bigger otherwise. The space between the radial
rings also decreases outwardly, so the decreasing of the nodes
happens faster the more they move outward.
- We implemented also two render modes for the graph. On the one
hand because we could not agree which one is better and on the other
hand simly to have two possibilities to present the graph which can be
useful in some cases (e.g. for presentation purposes).
- In one render mode we activated blending for the nodes and the
radial rings. This mode is useful if we have a graph with many
nodes which could overlap during the animation.
- The other render mode has material properties, lighting and
color. The color intensity decreases (like the node size) the more
the nodes move away from the focus.
- If the user selects a node to become the new focus, this node
gets a green border, so you can better follow his move.
- We also implemented a demo mode in which we generate a random
focus node after the previous animation has been completed. You
can see the calculated nodes based on the green border
sourrounding them.
- When the application is started, the first alignment of the
graph sets the centroid of the graph as focus. We implemented this
based on the algorithm we found on this page:
http://www.personal.kent.edu/~rmuhamma/GraphTheory/MyGraphTheory/trees.htm.
The menu should be self-explanatory until the Speed
spinner and the "Reset Rotation" button. The first one controls the
animation's speed by setting the number of interpolated nodes between
the start point and the end point of the node's animation. The second
one resets the rotation of the entire scene back so that the scene is
parallel to the Viewplane.
You can find here the binary version of
our implementation.
Date: 2004/06/13 04:00pm
Revision: 0.1