Informationsvisualisierung SS 2012
Thomas Ortner - 0928153, (ortner@vrvis.at)
Martin Brunnhuber - 1027922 (brunn@vrvis.at)

Start CLV.exe

Complex Logarithmic Views for Small Details in Large Contexts

Navigating through complex 2D data can be a difficult task since it is desired to view small details in a very large context. This is typically achieved by alternating zooming and panning or in advanced systems by using focus and context techniques (e.g. fish eye, table lens). Zooming and panning can be a tedious task especially with large data sets since it is a mental strain to permanently switch between two views. On the other hand fish eye views or similar distort the presented data in a way that it might lose its recognition value (e.g. stretching circles to ellipses). The here presented paper, published by Böttger et al., shows an alternative approach based on complex logarithms. By cutting open a fish eye view by various mapping operations it is possible to achieve something like a 2D logarithmic scale. This complex logarithmic mapping is able to display a point of interest (POI) extremely magnified, while maintaining its context to the rest of the data. In contrast to fisheye views the presented mapping is conformal which means that objects are equally stretched in all direction and angles remain locally constant. As described in the paper the complex logarithmic mapping is applied by utilizing a vertex shader. Consequently only data in a vertex based form such as points, triangles and lines can be examined in the complex logarithmic view. Instead of panning or zooming the user can only select a new POI. On performing this action the new POI is cut open and the rest of the data warps around it.


Implementation

We created a program in C# in with the XNA-Rendering framework which uses DirectX. The distortion for the logarithmic view is calculated in the vertex shader. We interpreted the x and y positions as complex numbers. The angle phi of the complex number x is mapped to the x direction while y is the logarithm of the magnitude r. Due to the circular domain all data is visible in the complex logarithmic view having large detail in the foreground and logarithmic decreasingly detail in the background. Further, as seen in the following screenshot, angles can be preserved. Therefore our mapping is conformal.

A circle to rectangular domain requires the rendered mesh to be cut open below the focus point. Otherwise the mapping would result in triangulation and texture mapping artifacts. Therefore a triangle splitter was developed which creates an epsilon-wide gap between triangles in order to overcome numerical issues.

The focus point can be changed with a mouse click in onto the distorted plane. Therefore the intersection point has to be recomputed into the complex logarithmic space to get the absolute position on the map. To preserve the visual context the change of the focus point is animated. This requires an interpolation between focus points over time. Consequently the given mesh has to be splitted at all timesteps of the animation. The following screenshot shows Dubai in our logarithmic view with a changed focus point

The controls in detail are besides mouse interaction:
[Escape]: exit program
[F11]: toggle Fullscreen
[+]: increase nth root up to a maximum of 8
[-]: decrease nth root down to a minimum of 1
[f]: toggle fill mode between wireframe and solid
[c]: toggle cullmode (counterclockwise and clockwise)
[PageUp]: decrease depth value (zoom out of view)
[PageDown]: increase depth value (zoom into view)
[l]: load new texture out of file (gif, png or jpg)
[LeftArrow]: use previous loaded texture
[RightArrow]: use next loaded texture
Four textures are already integrated in the program but the user is able to load own textures into the view.

Conclusion

The implemented complex logarithmic view shows large graphics in focus and context. The animation between current and new selected focus point preserves the context and recognizability of the data. Finally we added three more screenshots which show DC, Dubai and DC with a different focus point.

HTML documentation

PDF documentation

Load Complex Logarithmic View