Cuprins:
Video: Technology Stacks - Computer Science for Business Leaders 2016 2024
În câțiva pași scurți puteți începe să creați un program 3D relativ simplu în JavaFX care afișează lumea tridimensională (un exemplu este prezentat mai jos). După cum puteți vedea, acest spațiu 3D include patru forme: o sferă, un cub, un cilindru și o piramidă. Această listă scurtă vă arată cum să începeți cu un cilindru.
Puneți-vă capacul de gândire, deoarece acest exemplu este uneori destul de tehnic, iar multe dintre conceptele legate de construirea de lumi 3D pot fi confuze, mai ales dacă aceasta este prima dvs. experiență cu programarea 3D.
Pasul unu: Adăugați un cilindru
În acest pas, adăugați un obiect 3D de bază în lumea voastră. JavaFX oferă trei forme de bază pe care le puteți adăuga: butelii, cutii și sfere. Începeți prin adăugarea unui cilindru:
Cilindru cilindru = Cilindru nou (100, 50); rădăcină. getChildren (). add (cilindru);
Constructorul clasei de cilindri acceptă două argumente: raza cilindrului și înălțimea acestuia. Acest exemplu creează un cilindru aproximativ în forma unui puc de hochei, de patru ori mai mare decât înalt; apoi adaugă cilindrul în nodul rădăcină al scenei.
În acest moment, cilindrul există în lume, dar nu este vizibil. Pe baza a ceea ce știți despre formele 2D, este posibil să fiți tentat să o faceți vizibilă prin adăugarea unei culori de umplere (setFill) sau a unei culori a stroke (setStroke). Dar nu funcționează obiectele 3D. În pasul următor, descoperiți cum să aplicați un material pe suprafața cilindrului astfel încât acesta să fie vizibil în scenă.
Pasul doi: Creați un material
Realizarea fețelor unui obiect 3D este mult mai complicată decât redarea obiectelor plane, bidimensionale. Pentru un obiect 2D, aplicați doar un obiect Paint prin intermediul metodei setFill. Vopseaua poate fi o culoare simplă, o culoare gradient sau o imagine.
Pentru obiectele 3D, nu aplicați vopsea. În schimb, aplicați un obiect special numit material Phong , reprezentat de clasa PhongMaterial. Un material Phong (numit după Bui Tuong Phong, un expert de grafică de pionierat în anii 1970) oferă mijloacele prin care fețele unui obiect 3D sunt redate realist.
Următorul cod creează un material Phong simplu bazat pe două nuanțe de albastru și apoi aplică materialul pe cilindru:
PhongMaterial blueStuff = nou PhongMaterial (); blueStuff. setDiffuseColor (Culoare LIGHTBLUE); blueStuff. setSpecularColor (Culoare BLUE); cilindru. setMaterial (blueStuff);
După ce materialul Phong a fost aplicat pe cilindru, cilindrul va fi vizibil în interiorul scenei, după cum se arată.
Cilindrul 3D cu un material Phong.Pasul trei: Traduceți cilindrul
Ați observat, fără îndoială, că cilindrul nu arată prea tridimensional. Acest lucru se datorează faptului că vă uitați la margini: camera este îndreptată direct la intersecția axelor x și y, iar cilindrul este centrat pe acel punct.
Pentru a obține o anumită perspectivă asupra cilindrului, îl puteți muta într-o altă locație în spațiul 3D prin traducerea coordonatelor x, y și z. De exemplu: cilindru
. setTranslateX (-200); cilindru. setTranslateY (200); cilindru. setTranslateZ (200);
Aici, cilindrul este deplasat cu 200 de unități spre stânga, cu 200 de unități în jos și cu 200 de unități distanță de cameră. Vederea rezultată arată mai mult ca un cilindru, după cum puteți vedea aici.
Cilindrul 3D tradus.În această figură, se pare că cilindrul a fost rotit înainte, astfel încât să puteți vedea un pic de suprafața superioară. Totuși, acest lucru nu este cazul. Ce sa întâmplat de fapt este că nu mai priviți la marginea cilindrului.
În schimb, deoarece cilindrul este sub camera, te uiți în jos. Astfel, puteți vedea o parte din fața superioară. De asemenea, te uiți la ea din lateral, ceea ce explică de ce pare să fie înclinat.