Cuprins:
Video: MVC Java Tutorial 2024
JavaFX are suport încorporat pentru modelare realistă 3D. De fapt, graficul de scenă JavaFX are o natură tridimensională. Cele mai multe programe JavaFX funcționează în doar două dimensiuni, specificând doar coordonatele x și y. Dar tot ce trebuie să faceți pentru a intra în cea de-a treia dimensiune este să specificați z-coordonate pentru a plasa nodurile graficului de scenă în spațiul tridimensional.
JavaFX include un set bogat de clase care sunt dedicate creării și vizualizării obiectelor 3D în lumi 3D. Puteți crea forme tridimensionale, cum ar fi cuburile și cilindrii. Puteți deplasa camera virtuală în jurul spațiului 3D pentru a vă uita obiectele 3D din diferite unghiuri și perspective diferite.
Și chiar puteți adăuga surse de iluminare pentru a controla cu atenție aspectul final al lumilor dvs. virtuale. Pe scurt, JavaFX este capabil să producă scene 3D uimitoare.
Adăugați o casetă 3D în lumea dvs. Java
În acest pas, adăugați un obiect în lumea 3D: în acest caz, o casetă reprezentată de clasa Box. Iată codul:
Cutie cutie = cutie nouă (100, 100, 100); cutie. setMaterial (blueStuff); cutie. setTranslateX (150); cutie. setTranslateY (-100); cutie. setTranslateZ (-100); rădăcină. getChildren (). add (caseta);
Constructorul Box acceptă trei argumente care reprezintă lățimea, înălțimea și adâncimea casetei. În acest exemplu, toate cele trei sunt setate la 100. Astfel, caseta va fi desenată ca un cub, fiecare parte măsurând 100 de unități.
În cutie este dat același material ca și cilindrul; apoi, este tradus pe toate cele trei axe, astfel încât să puteți avea o vedere în perspectivă a cutiei. Figura arată modul în care se afișează caseta când este redată. După cum puteți vedea, fețele din stânga și de jos ale casetei sunt vizibile deoarece ați tradus poziția casetei în sus și spre dreapta, astfel încât camera să poată obține o anumită perspectivă.
Rotiți caseta 3D
În acest pas, rotiți caseta pentru a crea o vizualizare în perspectivă și mai interesantă. Există două moduri de a roti un obiect 3D. Cel mai simplu este să apelați metoda setRotate a obiectului și să furnizați un unghi de rotație:
. setRotate (25);
În mod implicit, aceasta va roti obiectul pe axa lui z. Dacă acest lucru este dificil de vizualizat, imaginați-vă oblicul obiectului cu un baston lung care este paralel cu axa z. Apoi, rotiți obiectul pe bivol.
Dacă doriți să rotiți obiectul de-a lungul unei axe diferite, mai întâi apelați setRotationAxis. De exemplu, pentru a roti obiectul pe axa sa x, utilizați această secvență:
casetă. setRotationAxis (rotiți X_AXIS); cutie. setRotate (25);
Imaginați-vă că rulați bivolul prin cutia cu bivolul paralel cu axa x și apoi răsuciți cutia cu 25 de grade.
Singura problemă cu utilizarea metodei setRotate de a roti un obiect 3D este că funcționează numai pe o axă odată. De exemplu, să presupunem că doriți să rotiți cutia de 25 de grade pe ambele axe z și x. Următorul cod va face nu această casetă:
. setRotationAxis (rotiți X_AXIS); cutie. setRotate (25); cutie. setRotationAxis (rotire Z_AXIS); cutie. setRotate (25);
Când metoda setRotate este numită a doua oară pentru a roti caseta pe axa z, rotirea axei x este resetată.
Pentru a vă roti pe mai multe axe, trebuie să utilizați în schimb clasa Rotate. Creați o instanță separată Rotate pentru fiecare axă pe care doriți să rotiți obiectul și apoi adăugați toate instanțele Rotate la colecția Transforms a obiectului prin intermediul getTransforms (). metoda addAll, astfel:
Rotire rxBox = new Rotire (0, 0, 0, 0, Rotire, X_AXIS); Rotire ryBox = rotire nouă (0, 0, 0, 0, rotire Y_AXIS); Rotire rzBox = rotire nouă (0, 0, 0, 0, rotire, Z_AXIS); rxBox. setAngle (30); ryBox. setAngle (50); rzBox. setAngle (30); cutie. getTransforms (). addAll (rxBox, ryBox, rzBox);
Constructorul Rotate acceptă patru parametri. Primele trei sunt coordonatele x, y și z ale punctului din interiorul obiectului prin care va trece axa de rotație. De obicei, specificați zerouri pentru ca acești parametri să rotească obiectul în jurul punctului său central. Al patrulea parametru specifică axa de rotație.
Această cifră arată cum apare caseta după ce a fost rotită.
Cutia după ce a fost rotită.