Home Implementierung Details Manual mit Screenshots
 
 

Als Programmiersprachen haben wir Java und Java3D gewählt. Java deshalb, um einfach ein GUI zu erstellen und weil wir beide schon viel Erfahrung damit haben. Java3D aus dem Grund, weil wir in unserem Projekt eine Kamera-Analogie verwenden sollen, sie sich damit recht gut umsetzen lässt. Die Implementierung des GUI war relativ einfach und hat nicht weiter Schwierigkeiten bereitet. Mehr Herausforderung war dagegen Java3D, da wir beide mit der Programmiersprache zuvor noch nicht gearbeitet hatten.

Unsere Implementierung ist so aufgebaut, dass es ein großes Fenster gibt, wo der eigentliche Zoom/Pan passiert, zwei Schieberegler mit zwei Parametern und ein kleines Fenster mit einer Übersichtskarte. In der Übersichtskarte kann man einen neuen Zielpunkte auswählen (der Startwert ist (0.0)), und im großen Fenster wird der Weg dorthin (Herauszoomen, Schwenken, Hineinzoomen) angezeigt. Der neue Startwert ist dann der Endpunkt des vorherigen Pfads.

Der Weg wird in der Klasse ZoomPan berechnet. Dabei werden die Gleichungen umgesetzt, die im Paper hergeleitet wurden. Jeder Weg besteht aus Teilstücken, deren Schrittweite durch die Framrate (also durch die Rechenleistung des PCs, auf dem das Programm gerade läuft) bestimmt wird. In jedem der Teilstücke werden die Parameter für das aktuelle Wegstück berechnet. Die Parameter V und Roh werden dabei vom Benutzer ausgewählt.

Nun eine Auflistung der verwendeten Klassen:

- AboutBox: definiert die Informationsbox
- BigView: bindet Plane (siehe unten) in das GUI ein
- Main: startet das GUI
- MainFrame: definiert das GUI
- MyFilter (wurde implementiert von Jeff Dinkins, wir haben den Code aus dem Internet): erlaubt beim File-Chooser-Dialog nur .gif und .jpg Dateien zur Auswahl
- Plane: definiert die Java3D-Umgebung für die Animation
- SmallView: definiert die Überblickskarte
- ZoomPan: hier werden die Gleichungen und damit der Weg berechnet

Detailierter Informationen finden Sie in unserer Java Doc
- (Zip-Version)
- online Version

Nennenswerte Probleme bei der Implementierung gab es eigentlich nicht. Es galt hauptsächlich, Java3D und das Zusammenspiel von einem Java GUI und Java 3D zu verstehen und die Gleichungen richtig anzuwenden. Natürlich gabs immer wieder Pannen und Aha-Erlebnisse, doch die waren wie immer typischer Bestandteil einer Implementierung und müssen daher nicht extra erwähnt werden.