Indholdsfortegnelse:
Video: Technology Stacks - Computer Science for Business Leaders 2016 2025
Oprettelse af en virtuel 3D-verden er nemmere end nogensinde i JavaFX. I dette eksempel lærer du at tilføje en kugle til dit JavaFX-program, animere det og tilføje en lyskilde til det.
Trin 1: Tilføj en kugle
Tilføj først en kugle repræsenteret af kugleklassen. Spherekonstruktoren accepterer kun en enkelt parameter, som angiver kuglens radius. For eksempel skaber disse linjer en kugle, hvis radius er 100, og derefter oversætter den for at flytte den væk fra midten af din virtuelle verden:
Kuglsfære = Ny kugle (100); sfære. setTranslateX (-180); sfære. setTranslateY (-100); sfære. setTranslateZ (100); rod. getChildren (). tilføje (område);
I stedet for at anvende det samme blå Phong-materiale på kuglen, kan du gøre noget mere interessant: Anvend et Phong-materiale konstrueret af et billede af et cylindrisk projektion af jorden ved hjælp af denne kode:
Billede earthImage = Ny billede "fil: jord. jpg"); PhongMaterial earthPhong = nyt PhongMaterial (); earthPhong. setDiffuseMap (earthImage); sfære. setMaterial (earthPhong);
Denne figur viser den resulterende kugle.
Du kan indpakke et billede rundt om en kugle (eller et andet 3D-objekt, for den sags skyld) ved hjælp af denne teknik. Du kan også få billedet til dette program fra Wikipedia. Søg bare efter Behrmann Projection, og download derefter filen. (Brug Windows Paint til at beskære billedets kanter lidt fordi billedet på Wikipedia har en lille kant omkring kanterne.)
Trin to: Animér objekter
Whew! Din 3D virtuelle verden har nu et objekt: en kugle, der ligner jorden. Du kan også tilføje andre objekter på dette tidspunkt.
I dette trin skal du tilføje en animation til alle objekter for at få dem til at spinde. Hvert objekt får en simpel RotationTransition-animation. Først sfæren:
RotateTransition rt4 = ny RotateTransition (); RT4. setNode (område); RT4. setDuration (Varighed. millis (9000)); RT4. setAxis (Rotate. Y_AXIS); RT4. setByAngle (360); RT4. setCycleCount (Animation. INDEFINITE); RT4. setInterpolator (Interpolator. LINEAR); RT4. Spille();
Efter at afspilningsmetoden er kaldt, begynder kuglen at spinde, hvilket gør en komplet drejning om sin z-akse hvert tredje sekund.
Kuglen drejer rundt om y-aksen, hvilket skaber indtryk af, at verden drejer sig om. For kuglen er hastigheden sat til en omdrejning hvert 10. sekund.
Trin tre: Tilføj en lyskilde
Det sidste trin i denne foray i 3D programmeringsverdenen er at tilføje en lyskilde.Lyskilden vil ændre hele udseendet af scenen som vist her.
For at tilføje lyskilden skal du bruge følgende kode:
Din 3D-verden med en lyskilde.PointLight light = nyt PointLight (Color. WHITE); lys. setTranslateX (-1000); lys. setTranslateY (100); lys. setTranslateZ (-1000); rod. getChildren (). tilføje (lys);
PointLight-klassen definerer en lyskilde, der stammer fra et bestemt punkt i scenen og projekterer lys af den givne farve (i dette tilfælde god gammel hvid). For at skabe lyseffekten, flyt lyset ved at oversætte dens koordinater 1, 000 til venstre, 100 ned og 1, 000 enheder mod brugeren. Resultatet giver gode skygger på bagsiden af de spindeobjekter.