Table des matières:
- Première étape: Ajouter une sphère
- Deuxième étape: Animer les objets
- Troisième étape: Ajouter une source de lumière
Vidéo: Generative Art and Interactive Technologies 2024
Créer un monde 3D virtuel est plus facile que jamais dans JavaFX. Dans cet exemple, vous apprendrez à ajouter une sphère à votre programme JavaFX, à l'animer et à lui ajouter une source lumineuse.
Première étape: Ajouter une sphère
Tout d'abord, ajoutez une sphère, représentée par la classe Sphère. Le constructeur Sphère n'accepte qu'un seul paramètre, qui spécifie le rayon de la sphère. Par exemple, ces lignes créent une sphère dont le rayon est 100, puis le traduisent pour le déplacer du centre de votre monde virtuel:
Sphère sphère = nouvelle sphère (100); sphère. setTranslateX (-180); sphère. setTranslateY (-100); sphère. setTranslateZ (100); racine. getChildren (). ajouter (sphère);
Plutôt que d'appliquer le même matériau Phong bleu à la sphère, vous pouvez faire quelque chose de plus intéressant: appliquer un matériau Phong construit à partir d'une image d'une projection cylindrique de la terre:
Image earthImage = new Image ("fichier: terre. jpg"); PhongMaterial earthPhong = nouveau PhongMaterial (); earthPhong. setDiffuseMap (earthImage); sphère. setMaterial (earthPhong);
Cette figure montre la sphère résultante.
Vous pouvez envelopper n'importe quelle image autour d'une sphère (ou d'un autre objet 3D, d'ailleurs) en utilisant cette technique. Vous pouvez également obtenir l'image pour ce programme de Wikipedia. Recherchez simplement Projection Behrmann, puis téléchargez le fichier. (Utilisez Windows Paint pour recadrer un peu les bords de l'image car l'image disponible sur Wikipedia a une petite bordure autour des bords.)
Deuxième étape: Animer les objets
Ouf! Votre monde virtuel 3D a maintenant un objet: une sphère qui ressemble à la terre. Vous pouvez également ajouter d'autres objets pour le moment.
Dans cette étape, ajoutez une animation à tous les objets pour les faire tourner. Chaque objet reçoit une animation RotationTransition simple. D'abord, la sphère:
RotateTransition rt4 = new RotateTransition (); RT4. setNode (sphère); RT4. setDuration (Durée millis (9000)); RT4. setAxis (Rotation Y_AXIS); RT4. setByAngle (360); RT4. setCycleCount (Animation.INDEFINITE); RT4. setInterpolator (Interpolateur.LINEAR); RT4. jouer();
Après l'appel de la méthode de jeu, la sphère commence à tourner, faisant un tour complet autour de son axe z toutes les trois secondes.
La sphère tourne autour de l'axe des y, créant ainsi l'impression que le monde tourne. Pour la sphère, la vitesse est réglée sur un tour toutes les 10 secondes.
Troisième étape: Ajouter une source de lumière
La dernière étape de cette incursion dans le monde de la programmation 3D consiste à ajouter une source de lumière.La source de lumière va changer l'aspect de la scène, comme montré ici.
Pour ajouter la source lumineuse, utilisez le code suivant:
Votre monde 3D avec une source lumineuse.Feu de PointLight = nouveau PointLight (Couleur BLANC); lumière. setTranslateX (-1000); lumière. setTranslateY (100); lumière. setTranslateZ (-1000); racine. getChildren (). ajouter (lumière);
La classe PointLight définit une source de lumière qui provient d'un point spécifique de la scène et projette la lumière de la couleur donnée (dans ce cas, du bon vieux blanc). Pour créer l'effet d'éclairage, déplacez la lumière en translatant ses coordonnées 1 000 vers la gauche, 100 vers le bas et 1 000 unités vers l'utilisateur. Le résultat projette de belles ombres sur les faces arrière des objets en rotation.