Zuhause Persönliche Finanzen Programmierbeispiel für javaFX: 3D Box - Dummies

Programmierbeispiel für javaFX: 3D Box - Dummies

Inhaltsverzeichnis:

Video: Controlling NAO Robot with Java 2024

Video: Controlling NAO Robot with Java 2024
Anonim

zu platzieren. JavaFX verfügt über eine integrierte Unterstützung für realistische 3D-Modellierung. In der Tat ist der JavaFX-Szenengraph dreidimensionaler Natur. Die meisten JavaFX-Programme arbeiten nur in zwei Dimensionen und spezifizieren nur x- und y-Koordinaten. Aber alles, was Sie tun müssen, um in die dritte Dimension zu gelangen, ist die Angabe von Z-Koordinaten, um die Knoten Ihres Szenengraphen im dreidimensionalen Raum zu platzieren.

JavaFX enthält eine umfangreiche Sammlung von Klassen, die sich der Erstellung und Visualisierung von 3D-Objekten in 3D-Welten widmen. Sie können dreidimensionale Formen wie Würfel und Zylinder erstellen. Sie können die virtuelle Kamera innerhalb des 3D-Raums bewegen, um Ihre 3D-Objekte aus verschiedenen Blickwinkeln und Perspektiven zu betrachten.

Und Sie können sogar Lichtquellen hinzufügen, um das endgültige Erscheinungsbild Ihrer virtuellen Welten sorgfältig zu steuern. Kurz gesagt, JavaFX ist in der Lage, erstaunliche 3D-Szenen zu erzeugen.

Fügen Sie Ihrer Java-Welt eine 3D-Box hinzu.

Fügen Sie in diesem Schritt ein Objekt zur 3D-Welt hinzu: In diesem Fall eine Box, die durch die Box-Klasse repräsentiert wird. Hier ist der Code:

Box box = new Box (100, 100, 100); Box. setMaterial (blueStuff); Box. setTranslateX (150); Box. setTranslateY (-100); Box. setTranslateZ (-100); Wurzel. getChildren (). hinzufügen (Kästchen);

Der Box-Konstruktor akzeptiert drei Argumente, die die Breite, Höhe und Tiefe der Box darstellen. In diesem Beispiel sind alle drei auf 100 gesetzt. Somit wird die Box als Würfel gezeichnet, wobei jede Seite 100 Einheiten misst.

Die Box erhält das gleiche Material wie der Zylinder; dann wird es auf allen drei Achsen übersetzt, so dass Sie eine perspektivische Ansicht der Box haben können. Die Abbildung zeigt, wie die Box beim Rendern erscheint. Wie Sie sehen können, sind die linken und unteren Flächen der Box sichtbar, da Sie die Position der Box nach oben und nach rechts verschoben haben, damit die Kamera eine gewisse Perspektive erhält.

Drehe die 3D-Box

Drehen Sie in diesem Schritt die Box, um eine noch interessantere perspektivische Ansicht zu erstellen. Es gibt zwei Möglichkeiten, ein 3D-Objekt zu drehen. Am einfachsten ist es, die setRotate-Methode des Objekts aufzurufen und einen Drehwinkel anzugeben:

. setRotate (25);

Standardmäßig wird dadurch das Objekt auf seiner Z-Achse gedreht. Wenn dies schwer zu visualisieren ist, stellen Sie sich vor, das Objekt mit einem langen Stab aufzuspießen, der parallel zur z-Achse ist. Drehen Sie dann das Objekt auf den Spieß.

Wenn Sie das Objekt entlang einer anderen Achse drehen möchten, rufen Sie zuerst die setRotationAxis auf. Um das Objekt beispielsweise auf der X-Achse zu drehen, verwenden Sie die folgende Sequenz:

. setRotationAxis (Drehen. X_AXIS); Box. setRotate (25);

Stellen Sie sich vor, dass Sie den Spieß mit dem Spieß parallel zur X-Achse durch die Box laufen lassen und dann die Box um 25 Grad drehen.

Das einzige Problem bei der Verwendung der setRotate-Methode zum Drehen eines 3D-Objekts ist, dass es nur auf einer Achse gleichzeitig funktioniert. Angenommen, Sie möchten die Box sowohl auf der z- als auch auf der x-Achse um 25 Grad drehen. Der folgende Code wird nicht ausführen:

. setRotationAxis (Drehen. X_AXIS); Box. setRotate (25); Box. setRotationAxis (Drehen. Z_AXIS); Box. setRotate (25);

Wenn die setRotate-Methode das zweite Mal aufgerufen wird, um die Box auf der z-Achse zu drehen, wird die x-Achsenrotation zurückgesetzt.

Um auf mehr als einer Achse zu drehen, müssen Sie stattdessen die Rotate-Klasse verwenden. Sie erstellen eine separate Rotate-Instanz für jede Achse, an der Sie das Objekt drehen möchten, und fügen dann alle Instanzen von Rotate über die getTransforms () zur Transformationssammlung des Objekts hinzu. addAll-Methode, wie folgt:

Rotiere rxBox = new Rotiere (0, 0, 0, 0, Rotate. X_AXIS); Rotiere ryBox = neu Rotiere (0, 0, 0, 0, Rotiere. Y_AXIS); Rotiere rzBox = neu Rotiere (0, 0, 0, 0, Rotate. Z_AXIS); rxBox. setAngle (30); RyBox. setAngle (50); rzBox. setAngle (30); Box. getTransforms (). addAll (rxBox, ryBox, rzBox);

Der Konstruktor Rotate akzeptiert vier Parameter. Die ersten drei sind die X-, Y- und Z-Koordinaten des Punktes innerhalb des Objekts, durch den die Rotationsachse verläuft. Normalerweise geben Sie für diese Parameter Nullen an, um das Objekt um seinen Mittelpunkt zu drehen. Der vierte Parameter gibt die Rotationsachse an.

Diese Abbildung zeigt, wie die Box nach dem Drehen angezeigt wird.

Die Box, nachdem sie gedreht wurde.

Programmierbeispiel für javaFX: 3D Box - Dummies

Die Wahl des Herausgebers

Bearbeiten in Photoshop Elements 10 Schnellfoto-Bearbeitungsmodus - Schnuller

Bearbeiten in Photoshop Elements 10 Schnellfoto-Bearbeitungsmodus - Schnuller

Schneller Foto-Bearbeitungsmodus ist eine abgespeckte Version des Modus "Full Photo Edit", der einfach grundlegende Fixingtools bereitstellt und mit einigen einzigartigen Funktionen aufwartet, z. B. eine Vorher-Nachher-Vorschau Ihres Bildes. Hier ist ein Schritt-für-Schritt-Workflow, den Sie im Schnellfoto-Bearbeitungsmodus verwenden können, um Ihre Fotos zu reparieren:

Zum Optimieren von Photoshop Elements-Bildern mit Fotoeffekten - Dummies

Zum Optimieren von Photoshop Elements-Bildern mit Fotoeffekten - Dummies

Fotoeffekte in Photoshop Elements 11 funktionieren wie Anwenden von Filtern; Das Dialogfeld "Filtergalerie" bietet Ihnen zahlreiche Optionen zum Anwenden eines Filters. Das geführte Bedienfeld bietet Ihnen Filtereffekte und führt Sie dann durch die Schritte zum Anpassen von Helligkeitswerte, Ändern von Farbton und Sättigung und Durchführen weiterer Anpassungen zum Vervollkommnen des Ergebnisses. Sie ...

Eingeben des Absatztyps in Photoshop Elements 11 - Dummies

Eingeben des Absatztyps in Photoshop Elements 11 - Dummies

Absatztyp in Photoshop Elements 11 ist ähnlich zu dem Text, den Sie in ein Textverarbeitungsprogramm eingeben, mit der Ausnahme, dass er in einem Textfeld oder einem Begrenzungsrahmen enthalten ist. Wenn Sie größere Textabschnitte haben, die Sie in ein Bild eingeben möchten, ist die Eingabe des Textes als Absatztyp die praktischste Option. Während ...

Die Wahl des Herausgebers

PHP-Anweisungen - Dummys

PHP-Anweisungen - Dummys

PHP ist eine Skriptsprache, die speziell für die Verwendung im Internet entwickelt wurde. Es enthält Funktionen, die Sie bei der Programmierung der Aufgaben unterstützen, die für die Entwicklung dynamischer Webanwendungen erforderlich sind. Diese Tabelle gibt einen kurzen Überblick über einige der Anweisungen, die Sie häufig verwenden werden: Anweisung Beschreibung array ("key" => "value", ...); Casts a ...

PHP-Schablonen-Systeme - Schablonen-Systeme

PHP-Schablonen-Systeme - Schablonen-Systeme

Können die Menge an Arbeit reduzieren, die Sie für die Erstellung einer Website in PHP benötigen. Wenn Sie eine Website erstellen, verwenden Sie häufig das gleiche Layout für die gesamte Website. Sie haben eine obere Portion, vielleicht mit einem Menü; ein Hauptinhaltsbereich; und ein unterer Teil, vielleicht mit Links oder ...

Make MySQL Datenbank Änderungen mit den ALTER Query - Dummies

Make MySQL Datenbank Änderungen mit den ALTER Query - Dummies

Die ALTER Query wird verwendet, um die Struktur von eine MySQL-Datenbank. In dieser Liste wird die Syntax für die Änderungen angezeigt, die Sie wahrscheinlich vornehmen möchten: ADD-Spaltenbezeichnung ALTER-Spaltenname SET-DEFAULT-Wert ALTER-Spaltenname DROP DEFAULT CHANGE-Spaltenname newcolname-Definition DROP-Spaltenname MODIFY-Spaltenname RENAME newtablename

Die Wahl des Herausgebers

Hochgeschwindigkeitsdatencaching mit NoSQL - Dummies

Hochgeschwindigkeitsdatencaching mit NoSQL - Dummies

Mit NoSQL haben Sie Hochgeschwindigkeits-Caching. Stellen Sie sich vor, Sie sind Bankangestellte und arbeiten mit drei anderen Kollegen zusammen. Jeder hat eine Reihe von Leuten, die bedient werden sollen. Einer der Kunden bleibt jedoch in der Schlange, um zu fragen, ob sein Scheck bereits eingelöst und der Betrag seinem Konto gutgeschrieben wurde. Wenn Sie ...

Wie man Einsichten aus Big Data kommuniziert - Dummies

Wie man Einsichten aus Big Data kommuniziert - Dummies

Big Data kann helfen, Einblicke zu gewinnen. Unternehmen gewinnen Wettbewerbsvorteile, wenn die richtigen Informationen zur richtigen Zeit an die richtigen Leute geliefert werden. Dies bedeutet, Erkenntnisse und Informationen aus Daten zu extrahieren und sie Entscheidungsträgern auf eine Weise zu vermitteln, die sie leicht verstehen. Schließlich sind Menschen weniger wahrscheinlich zu handeln, wenn sie ...

Zookeeper und HBase Reliability - dummies

Zookeeper und HBase Reliability - dummies

Zookeeper ist ein verteiltes Cluster von Servern, das gemeinsam zuverlässige Koordinations- und Synchronisationsdienste für Cluster-Anwendungen bereitstellt. .. Zugegeben, der Name "Zookeeper" mag auf den ersten Blick eine seltsame Wahl sein, aber wenn Sie verstehen, was es für einen HBase-Cluster tut, können Sie die Logik dahinter sehen. Beim Erstellen und Debuggen von verteilten Anwendungen ...