Animation von Objekten
- Java 3D-API im Überblick
- Animation von Objekten
Bewegte Welt in 3D ...
Bewegte Welt in 3D

Eine Animation von Objekten verwirklichen Sie innerhalb der Java 3D-API. Die Klasse Behavior legt hier Animation oder Interaktion fest. Wobei sich Animation im Verlauf von Zeit vollzieht, wohingegen Interaktion gezielt durch den Benutzer angestoßen wird. Die Klasse Behavior kann alle Attribute eines Objektes verändern.
Haben Sie einmal ein Verhalten festgelegt, dann ändert die Klasse Position, Orientierung, Farbe oder andere Attribute des Objektes vollständig automatisch, beansprucht dabei allerdings erheblich Rechenleistung. Die Position eines Objektes ändern Sie mit der Klasse PositionInterpolator, die Orientierung mit der RotationInterpolator-Klasse, mit der ScaleInterpolator-Klasse die Größe eines Objektes.
Für die Drehung des Würfels um sich selbst nutzen Sie die RotationInterpolator-Klasse. Halten Sie sich dabei strikt an eine vorgegebene Reihenfolge. Erzeugen Sie das Objekt TransformGroup und setzen über die Methode setCapability() das ALLOW_TRANSFORM_WRITE-Flag. Die Geschwindigkeit der Drehung wird über ein Alpha-Objekt bestimmt.
Einem RotationInterpolator-Objekt übergeben Sie das Alpha-sowie TransformGroup-Objekt. Eine Instanz der Klasse BoundingSphere legt eine Scheduling Region an, die über die Methode setSchedulingBounds() der RotationInterpolator-Klasse gesetzt wird. Abschließend ordnen Sie den RotationInterpolator dem TransformGroup-Objekt mittels addChild() zu.
// Die modifizierte Methode
TransformGroup tg = TransformGroup();
tg.setCapability(TransformGroup.ALLOW_
TRANSFORM_WRITE);
Alpha rotateAlpha = new Alpha(-1,4000);
RotationInterpolator rotator = new Rota
tionInterpolator(rotateAlpha,tg);
BoundingSphere bounds = new Bounding
Sphere();
rotator.setSchedulingBounds(bounds);
tg.addChild(rotator);
Visuelle Objekte und Utility-Klassen

Zur Defintion von visuellen Objekten verwendet die Java 3D-API als Basis die Klasse Shape3D, welche keine Informationen zur Gestalt oder Farbe eines visuellen Objektes enthält. Diese Informationen werden in NodeComponent-Objekten hinterlegt, die von Shape3D-referenziert werden. Als NodeComponents gelten die Klassen Appearance, Geometry, Material, Texture und Attributes.
Diese NodeComponents stellen quasi alle Attribute eines visuellen Objekts dar. Darunter fallen Aussehen, Material, Texturen und Geometriegestaltung. Jegliche Art von Objekten stellen Sie damit leicht zusammen und definieren anschließend mit Hilfe der Attribute Geometry- oder Appearance-Objekte die Darstellung. Das Diagramm zeigt die Klassenhierarchie.
Die Utility-Klassen beinhalten fertige visuelle Objektdefinitionen: Die Zeile Box myBox = new Box(x,y,z,myApp) erzeugt einen Quader der Größe x,y,z, mit Koordinatenursprung als Mittelpunkt. Ohne Transformationen oder Betrachterstandpunktsänderung, zeigt die x-Achse im Darstellungsfenster nach rechts, die y-Achse nach oben und die z-Achse nach vorn auf den Betrachter.
Die Anweisung Sphere mySphere = new Sphere(r,myApp) definiert eine Kugel mit dem Radius r mit Mittelpunkt im Koordinatenursprung. Einen Zylinder mit Radius r und Höhe h, mit Mittelpunkt im Koordinatenursprung über Cylinder myCylinder = new Cylinder(r,h,myApp). Der Zylinder ist so ausgerichtet, dass seine Höhe entlang der y-Achse verläuft. Auf dieselbe Art erzeugt Cone myCone = new Cone(r,h,myApp) einen Kegel.
Diese Klassen realisieren lediglich die Geometrie. Beim Aufruf des Konstruktors sehen Sie somit nichts auf dem Bildschirm. Das Erscheinungsbild (Appearance) bestimmt das Appearance-Objekt. Die Standardeinstellung der Objektgröße bestimmen verschiedene Konstruktoren.
// Erscheinungsbild des Objektes fest
legen
Appearance ap = new Appearance();
ColoringAttributes ca = new Coloring
Attributes();
ca.setColor(0f,0f,150f);
ap.setColoringAttributes(ca);
Programmausführung

Zur Ausführung von Java-3D-Programmen installieren Sie JRE 6 (Java Runtime Environment), sowie das Java-3D-Software-Paket. Für die eigene Programmierung und das Debuggen eignet sich bestens die freie Software Eclipse. Starten Sie Eclipse, öffnen das Menü File und wählen New->Java Project aus. Nun geben Sie den Projektnamen ein und wählen die Weiter-Schaltfläche aus.
Im Folgedialog springen Sie zur Registerkarte Libraries und wählen die Add External JARs-Schaltfläche aus. Dann gehen Sie in das Verzeichnis mit Ihrem installierten Java-3D-Software-Paket und wechseln in das Verzeichnis lib/ext. Dort selektieren Sie die Dateien j3dcore, j3dutils und vecmath und betätigen die Öffnen-Schaltfläche.
Damit greift Ihr Programm auf die 3D-API zu. Die Finish-Schaltfläche beendet den Assistenten. Wählen Sie das neue Projekt aus und rufen über die rechte Maustaste das Kontextmenü aus. Dort wählen Sie New->Class aus, geben den Namen der Klasse ein und beendet mit Finish wieder den Dialog. Anschließend geben Sie den Programmcode für ihr 3D-Programm ein.
Ist dies erledigt, wählen Sie das Projekt aus und öffnen über die rechte Maustaste ein Kontextmenü. Über die Einträge Run As->Java Application starten Sie Ihr Java-3D-Programm und sehen das Ergebnis auf dem Bildschirm.