Java-Komponente für Vektorgrafiken

Vektorgrafiken für Javanti

Swing-Komponente

Erstellung einer neuen Swing-Komponente, die Vektorgrafiken darstellen kann. Die Grafikbeschreibung soll dabei aus einer Datei eingelesen werden. Zur Darstellung sollen Shape-Elemente der Java 2D-API verwendet werden.

Die minimalen Manipulationsmöglichkeiten für die neue Komponente sollen Zoom, Translation und Rotation sein. Die Skalierung der angezeigten Grafik orientiert sich dabei an der Größe der Komponente.

Bei der Implementierung muss von einer Swing-Komponente, z.B. JComponent oder JPanel, abgeleitet werden. Die neue Komponenten-Klasse muss um Methoden erweitert werden, mit denen man die aktuell angezeigte Grafikdatei zur Laufzeit setzen und die oben beschriebenen Manipulationen einstellen kann, z.B.:

 setCurrentFile(String fileName);
 setRotation (float degrees);
 setZoom(float scale);
 setTranslation (float x, float y)

Alle Methoden sollen unmittelbar eine visuelle Auswirkung in der Komponente hervorrufen. Ansonsten soll sich die Komponente wie jede andere Swing-Komponente auch verhalten.

Programmiersprachen und Werkzeuge
1. Ansatz

Die Anzeige der Vektorgrafiken soll für ein standardisiertes Grafikformat erfolgen. Die Hauptaufgabe besteht in der Interpretation einer Grafikdatei und der Erzeugung entsprechender Shape-Elemente. Eine sehr einfache Datei-Spezifikation ist das FIG-Format, das von der Grafiksoftware XFIG benutzt wird.

Infos: http://www.dcs.ed.ac.uk/home/mxr/gfx/2d/FIG.txt und http://www.xfig.org

2. Ansatz

Das CGM-Format (Computer Graphics Metafile) ist weit verbreitet, aber leider sehr umfangreich. Daher kann bei diesem Ansatz auf bestehende Open Source Lademodule zurückgegriffen werden. Diese müssen aber so modifiziert werden, dass sie den oben beschriebenen Anforderungen genügen: Ein Klient kann also weiterhin eine Vektorgrafikkomponente erzeugen und benutzen, ohne zu wissen, dass dafür ein fremdes Lademodul zum Einsatz kommt.

Zusätzlich soll bei diesem Ansatz ein Plug-In für die Lernsoftware Javanti erstellt werden. Dieses Plug-In verwendet die neue Komponente, um Vektorgrafiken in Javanti einzubinden. Dateiname, Zoom, Translation und Rotierung sollen als Eigenschaften in Javanti zur Verfügung stehen.

Umgebung
Java 1.2 und ggf. Javanti

Hauptnavigation