JavaFX exemple de programmation: 3d boîte

JavaFX a un support intégré pour la modélisation 3D réaliste. En fait, la scène graphique JavaFX est en trois dimensions dans la nature. La plupart des programmes JavaFX travaillent en seulement deux dimensions, en spécifiant les coordonnées x et y vient. Mais tout ce que vous avez à faire pour entrer dans la troisième dimension est de spécifier les coordonnées z pour placer les nœuds de votre graphe de scène dans l'espace en trois dimensions.

Sommaire

JavaFX comprend un riche ensemble de classes qui sont dédiés à la création et la visualisation des objets 3D dans les mondes 3D. Vous pouvez créer des formes en trois dimensions, tels que des cubes et des cylindres. Vous pouvez déplacer la caméra virtuelle autour de l'intérieur de l'espace 3D à regarder vos objets 3D à partir de différents angles et points de vue différents.

Et vous pouvez même ajouter des sources d'éclairage pour contrôler soigneusement l'aspect final de vos mondes virtuels. En bref, JavaFX est capable de produire des scènes 3D étonnantes.

Ajouter une zone de 3D à votre monde Java

Dans cette étape, ajouter un objet à l'univers 3D: Dans ce cas, une boîte, représentée par le Boîte classe. Voici le code:

Boîte de Box = new Box (100, 100, 100)-box.setMaterial(blueStuff)-box.setTranslateX(150)-box.setTranslateY(-100)-box.setTranslateZ(-100)-root.getChildren().add(box)-

La Boîte constructeur accepte trois arguments représentant la largeur, la hauteur et la profondeur de la boîte. Dans cet exemple, tous les trois sont mis à 100. Ainsi, la zone sera dessiné comme un cube dont chaque côté mesure 100 unités.




La boîte est donnée le même matériau que le Cylindre puis, il est traduit sur les trois axes de sorte que vous pouvez avoir une vue en perspective de la boîte. La figure montre comment la boîte apparaît lors du rendu. Comme vous pouvez le voir, les faces gauche et en bas de la boîte sont visibles parce que vous avez traduit la position de la boîte en haut et à droite de sorte que la caméra peut acquérir une certaine perspective.

image0.jpg

Tournez la boîte 3D

Dans cette étape, faire pivoter la boîte pour créer une vue encore plus intéressante en perspective. Il ya deux manières de faire pivoter un objet 3D. Le plus simple est d'appeler l'objet de setRotate méthode et de fournir un angle de rotation:

box.setRotate (25) -

Par défaut, ce sera faire tourner l'objet sur son axe z. Si cela est difficile à visualiser, imaginer embrocher l'objet d'un long bâton qui est parallèle à l'axe z. Ensuite, tourner l'objet sur la brochette.

Si vous voulez faire pivoter l'objet le long d'un axe différent, d'abord appeler la setRotationAxis. Par exemple, pour faire tourner l'objet sur son axe-x, utilisez cette séquence:

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

Imaginez exécutant la broche à travers la boîte avec la brochette parallèle à l'axe des x et ensuite tourner la boîte de 25 degrés.

Le seul problème avec l'aide de la setRotate méthode pour faire pivoter un objet 3D est qu'il ne fonctionne que sur un axe à la fois. Par exemple, supposons que vous souhaitez faire pivoter la zone de 25 degrés à la fois sur le z et l'axe des x. Le code suivant pas accomplir ceci:

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

Quand le setRotate méthode est appelée la deuxième fois pour faire tourner le moteur sur l'axe des z, la rotation de l'axe des x est réinitialisé.

Pour tourner sur plus d'un axe, vous devez utiliser le Rotation classe à la place. Vous créez un séparée Rotation instance pour chaque axe que vous voulez faire pivoter l'objet sur, puis ajouter tous les Rotation cas à l'objet de Transformées collection via le getTransforms (). addAll méthode, comme ceci:

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

La Rotation constructeur accepte quatre paramètres. Les trois premiers sont les axes x, y et z coordonnées du point dans l'objet à travers lequel l'axe de rotation passera. Typiquement, vous spécifiez zéros pour ces paramètres pour faire pivoter l'objet autour de son point central. Le quatrième paramètre spécifie l'axe de rotation.

Cette figure montre comment la boîte apparaît après qu'il a été tourné.

La boîte après's been rotated.
La boîte après qu'il a été tourné.

» » » » JavaFX exemple de programmation: 3d boîte