Anflug der 3D-Welten

Animation von Objekten

  1. Java 3D-API im Überblick
  2. Animation von Objekten

Bewegte Welt in 3D

image.jpg

© PC Magazin

Der beliebte Cube-Würfel: Im Web finden Sie zahlreiche Spiele, welche die Java3D-API umsetzen

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

image.jpg

© PC Magazin

Diese Seite zeigt, ob das Java-3D-Paket korrekt installiert ist und der Browser Java3D-Applets darstellt.

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

image.jpg

© PC Magazin

Dialog in Eclipse: Sie sehen, wo die Java-3D-Packages dem Projekt hinzugefügt werden.

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.

Mehr zum Thema

intenet, webdesign, Titanium, Appcelerator, Webtechnologien,iPhone, iPad, objective-c
Apfel für die Hosentasche

Titanium von Appcelerator ermöglicht die Erstellung von mobilen Anwendungen auf Basis von etablierten Webtechnologien - auch für iPhone und iPad.
Authentische Selbstdarstellung

Wenn Sie bei Facebook eine Applikation registrieren, haben Sie uneingeschränkten Zugriff auf alle API-Funktionen. Bereits mit FBML, der…
internet, webdesign, microsoft, webmatrix beta 3, editor, php, html, css, javascript, sql server
Auf dem Prüfstand

Mit WebMatrix entwickelt Microsoft einen Web-Baukasten, der neben einem Webserver Editoren für PHP, HTML, CSS und JavaScript sowie den SQL Server…
combit List & Label 16
Testbericht

Der Reportgenerator List & Label 16 erlaubt neben dem lokalen auch das Web Reporting. Das Produkt bietet einen leistungsfähigen, integrierten…
welt, pc,
Meisterwerkstatt

Microsoft sorgt für eine gelungene Überraschung: Die kostenlose Software Webmatrix entpuppt sich als ein leistungsstarkes und leicht zu bedienendes…