JavaFX Programmierung Beispiel: 3D-Box

JavaFX hat eine integrierte Unterstützung für realistische 3D-Modellierung. In der Tat ist die JavaFX Szenegraph dreidimensionale Natur. Die meisten JavaFX-Programme funktionieren nur zwei Dimensionen, nur x- und y-Koordinaten angeben. Aber alles, was Sie tun müssen, um in die dritte Dimension zu Schritt ist angeben z-Koordinaten der Knoten des Szenengraphen in einem dreidimensionalen Raum zu platzieren.

Menu

JavaFX enthält einen umfangreichen Satz von Klassen, die Erstellung und Visualisierung von 3D-Objekten in 3D-Welten gewidmet sind. Sie können dreidimensionale Formen, wie Würfel und Zylinder erstellen. Sie können die virtuelle Kamera im 3D-Raum bewegen aus verschiedenen Winkeln und verschiedenen Perspektiven auf Ihre 3D-Objekte zu suchen.

Und Sie können auch Lichtquellen in den sorgfältig das endgültige Aussehen Ihrer virtuellen Welten steuern. Kurz gesagt, ist JavaFX fähig erstaunliche 3D-Szenen zu erzeugen.

Fügen Sie eine 3D-Box auf Ihre Java-Welt

In diesem Schritt wird ein Objekt in der 3D-Welt hinzuzufügen: In diesem Fall wird ein Feld durch die dargestellte Box Klasse. Hier ist der Code:

Box box = neue Box (100, 100, 100)-box.setMaterial(blueStuff)-box.setTranslateX(150)-box.setTranslateY(-100)-box.setTranslateZ(-100)-root.getChildren().add(box)-

Das Box Konstruktor akzeptiert drei Argumente für die Breite, Höhe und Tiefe der Box. In diesem Beispiel sind alle drei auf 100 gesetzt Somit wird das Feld als ein Würfel mit einer Seitenlänge von 100 Einheiten gezeichnet.

Die Box wird das gleiche Material wie die Zylinder- dann gegeben, es auf allen drei Achsen übersetzt wird, so dass man eine perspektivische Ansicht der Box haben kann. Die Abbildung zeigt, wie das Feld bei der Wiedergabe angezeigt wird. Wie Sie sehen können, sind die linken und unteren Flächen des Kastens sichtbar, da Sie die Position der Box nach oben und nach rechts, so dass die Kamera übersetzt eine Perspektive zu gewinnen.

bild0.jpg

Drehen Sie die 3D-Box

In diesem Schritt, drehen Sie das Feld eine noch interessanter perspektivische Ansicht zu erstellen. Es gibt zwei Möglichkeiten, um ein 3D-Objekt zu drehen. Am einfachsten ist es, das Objekt ist zu nennen setRotate Verfahren und ein Rotationswinkel liefern:

box.setRotate (25) -

Standardmäßig wird dies das Objekt auf seine z-Achse drehen. Wenn dies schwierig ist, sichtbar zu machen, stellen Sie sich das Objekt mit einem langen Stock Aufspießen, die auf der z-Achse parallel ist. Dann drehen Sie das Objekt auf dem Spieß.

Wenn Sie das Objekt entlang einer anderen Achse drehen möchten, rufen Sie zunächst die setRotationAxis. Zum Beispiel, um das Objekt auf seiner x-Achse zu drehen, verwenden Sie diese Reihenfolge:

box.setRotationAxis (Rotate.X_AXIS) -box.setRotate (25) -

Stellen Sie sich den Spieß durch die Box mit dem Spieß parallel zur x-Achse läuft und dann die Box 25 Grad drehen.

Das einzige Problem bei der Verwendung der setRotate Verfahren zur Herstellung eines 3D-Objekts zu drehen ist, dass es nur auf einer Achse zu einem Zeitpunkt arbeitet. Beispiel: Angenommen, Sie die Box 25 Grad sowohl auf der z- und der x-Achse drehen möchten. Der folgende Code wird nicht Dazu:

box.setRotationAxis(Rotate.X_AXIS)-box.setRotate(25)-box.setRotationAxis(Rotate.Z_AXIS)-box.setRotate(25)-

Wenn das setRotate Verfahren zum zweiten Mal aufgerufen zurückgesetzt, um den Kasten auf der z-Achse, die x-Achsen-Drehung zu drehen.

So drehen Sie auf mehr als eine Achse, müssen Sie die Verwendung Drehen Klasse statt. Sie erstellen einen separaten Drehen Beispiel für jede Achse, die Sie auf das Objekt zu drehen wollen und fügen Sie dann alle Drehen Instanzen des Objekts Wandelt Sammlung über die (GetTransforms). AddAll Verfahren, wie folgt aus:

Drehen rxBox = new Drehen (0, 0, 0, 0, Rotate.X_AXIS) -rotate ryBox = new Drehen (0, 0, 0, 0, Rotate.Y_AXIS) -rotate rzBox = new Drehen (0, 0, 0, 0, Rotate.Z_AXIS)-rxBox.setAngle(30)-ryBox.setAngle(50)-rzBox.setAngle(30)-box.getTransforms().addAll(rxBox, ryBox, rzBox) -

Das Drehen Konstruktor akzeptiert vier Parameter. Die ersten drei sind die x-, y- und z-Koordinaten des Punktes in dem Objekt, durch das die Drehachse passieren. Normalerweise geben Sie Nullen für diese Parameter das Objekt um seinen Mittelpunkt dreht. Der vierte Parameter spezifiziert die Drehachse.

Diese Abbildung zeigt, wie die Box erscheint, nachdem es gedreht worden ist.

Die Box, nachdem es's been rotated.
Die Box, nachdem es gedreht wurde.

Menü