Kurzdokumentation zur Implementierung:
„Complex logarithmic views for small details in large contexts“
Das herkömmliche „Pan-and-Zoom“
leidet unter der Einschränkung, daß bei einer
ausreichenden Vergrößerung
des POI (Point of Interest)
der Kontext verloren geht und damit die Information fehlt, woher ich
denn komme.
Dieser hier umgesetzte Ansatz von [1] Böttger
et.al beschreibt ein komplex-logarithmisches und
geometrisch
konformes Zoomverfahren. Geometrisch konform bedeutet,
daß die Informationen im äußeren Bereich
nicht
verzerrt werden und daher die Skalierung als proportional
erscheint. Die Daten im Zentrum der Projektion werden
(wie auf
späteren Bildern zu sehen ist) enorm skaliert. Leider hat der
zeitliche Aspekt die Umsetzung einer
Navigation innerhalb der
Bilddaten verhindert, was noch einen schönen Zusatzaspekt
dargestellt hätte.
Zur Bedienung des Programmes gibt es nicht viel Worte
zu verlieren. Eine Reihe von Bildern soll den
Sachverhalt
visualisieren und den Nutzen dahinter aufzeigen!
Im vorliegenden Beispiel sind vier verschiedene
Texturen fest im Programm integriert, einen Dialog zum öffnen
von
Dateien ist in dieser Testanwendung nicht vorgesehen!
Das erste Bild scheint unspektakulär – ein
Weltraumbild mit Sternen – die Quelle des Bildes ist mir leider
unbekannt.
Links oben befindet sich das „Navigationsfenster“,
eine kleine GLUI (GL User Interface)-Anwendung, die eine
Umschaltung
zwischen Texturen und zwischen den Zeichenmodi FILL und LINE
umschaltet!
Was zunächst unscheinbar erscheint – das Geheimnis wird
im übernächsten Bild gelüftet bzw. geöffnet: Aber
zuerst
das ganze Bild im Wireframe-Modus:
Das
obige Bild zeigt die unverzerrte Grundlage der
Implementierungstechnik
Sieht etwas verquer aus. Mit der gedrückten rechten Maustaste
und einer Bewegung in y-Richtung spreizt sich
das Bild auf. Die
Information im Zentrum des Bildes wandert in Nähe der
Grundlinie, da durch den komplexen
Logarithmus der Ursprung nach y
= -inf verschoben wird. Dadurch findet im unteren Bereich eine sehr
starke
Magnifikation (Vergrößerung) statt, während
der obere Bereich eher verkleinert wird.
Im obigen Beispiel beträgt der Öffnungswinkel genau PI.
Bis zu diesem Punkt betraf der Zoom nur dem Aufspalten
des Bildes
in zwei „Teile“. Die Sterne oben rechts wirken
verkleinert, die Galaxie im Zentrum ist um 180° aufgefächert.
Das
ganze zum besseren Verständnis auch noch mal als Skelett.
Im obigen Bild ein Öffnungswinkel von ca. 270°. Ganz
deutlich ist erkennbar, daß das Liniengitter im Ursprungsbild
verzerrt wird und Linie zu Kurven angenähert werden. Da nur
Vierecksegmente (GL_QUAD_STRIP) verwendet werden,
wirkt das Gitter
dennoch etwas eckig. Durch die hier verwendete Gittergröße
von 50x50 Vertices sieht der Effekt
(siehe letztes Bild) doch
recht vernünftig aus!
Dieses Bild zeigt den maximalen Öffnungswinkel an.. Die
Galaxie ist maximal verzerrt, die Sterne wurden verkleinert
und
sind in den Hintergrund gewandert. Das komplette Bild ist sichtbar
(normalisiert auf Projektionsfläche sowie
„shifted &
scaled“ - sprich verschoben und skaliert, wie im Paper
angegeben. Der komplette Kontext ist noch vorhanden,
jedoch lässt
die Übersichtlichkeit etwas zu wünschen übrig!
Das letzte Bild zeigt den Wireframe-Modus. Der helle Bereich im
unteren Bilddrittel verhindert leider eine genauere
Darstellung
des Gitters. Dennoch ist gut zu erkennen, wie im Vergleich zum
zweiten Bild die Linien zu Kurven
umgewandelt wurden. Die
„Kästchen-Struktur“ wird auch weitgehend
beibehalten. Sie unterscheiden sich nur durch
eine leichte
Kurvatur, aber durch sehr geringe Verzerrung!
[1] Complex Logarithmic Views for Small Details in Large Contexts
Downloads:
Kompiliertes Binary (incl. Texturen)