Hjem Personlig finansiering JavaFX Programmeringseksempel: 3D Box - dummies

JavaFX Programmeringseksempel: 3D Box - dummies

Innholdsfortegnelse:

Video: JavaFX Java GUI Tutorial - 1 - Creating a Basic Window 2024

Video: JavaFX Java GUI Tutorial - 1 - Creating a Basic Window 2024
Anonim

JavaFX har innebygd støtte for realistisk 3D-modellering. Faktisk er JavaFX scene grafen tredimensjonal i naturen. De fleste JavaFX-programmer fungerer i bare to dimensjoner, og angir bare x- og y-koordinater. Men alt du trenger å gjøre for å gå inn i den tredje dimensjonen er å spesifisere z-koordinater for å plassere knutepunktene til scenegrafen din i tredimensjonalt rom.

JavaFX inneholder et rikt sett med klasser som er dedikert til å lage og visualisere 3D-objekter i 3D-verdener. Du kan lage tredimensjonale former, for eksempel kuber og sylindere. Du kan flytte det virtuelle kameraet rundt i 3D-rommet for å se på dine 3D-objekter fra forskjellige vinkler og forskjellige perspektiver.

Og du kan til og med legge til lyskilder for å nøye kontrollere det endelige utseendet til virtuelle verdener. Kort sagt, JavaFX er i stand til å produsere forbløffende 3D scener.

Legg til en 3D-boks i Java-verdenen din

I dette trinnet legger du til et objekt i 3D-verdenen: I dette tilfellet en boks, representert av bokseklassen. Her er koden:

Bokseboks = Ny boks (100, 100, 100); eske. setMaterial (blueStuff); eske. setTranslateX (150); eske. setTranslateY (-100); eske. setTranslateZ (-100); rot. getChildren (). legg (boks);

Boksekonstruktøren aksepterer tre argumenter som representerer bredden, høyden og dybden av boksen. I dette eksemplet er alle tre satt til 100. Dermed blir boksen tegnet som en terning med hver side som måler 100 enheter.

Boksen er gitt samme materiale som sylinderen; da er det oversatt på alle tre aksene, slik at du kan få et perspektivvis av boksen. Figuren viser hvordan boksen vises når den gjengis. Som du kan se, er venstre og bunnflaten av boksen synlig fordi du har oversatt posisjonsposisjonen oppe og til høyre slik at kameraet kan få noe perspektiv.

Roter 3D-boksen

I dette trinnet, roter du boksen for å skape en enda mer interessant perspektivvisning. Det er to måter å rotere et 3D-objekt på. Det enkleste er å ringe objektets setRotate-metode og levere en rotasjonsvinkel:

boks. setRotate (25);

Som standard vil dette rotere objektet på sin z-akse. Hvis dette er vanskelig å visualisere, tenk å skjære objektet med en lang pinne som er parallell med z-aksen. Spinn deretter objektet på spissen.

Hvis du vil rotere objektet langs en annen akse, må du først ringe til setRotationAxis. For eksempel, for å rotere objektet på sin x-akse, bruk denne sekvensen:

-boksen. setRotationAxis (Rotate. X_AXIS); eske. setRotate (25);

Tenk å kjøre spyden gjennom boksen med spydet parallelt med x-aksen og deretter spinne boksen 25 grader.

Det eneste problemet med å bruke setRotate-metoden for å rotere en 3D-objekt er at den bare fungerer på en akse om gangen. For eksempel, antar at du vil rotere boksen 25 grader på både z- og x-aksen. Følgende kode vil ikke gjøre dette:

boksen. setRotationAxis (Rotate. X_AXIS); eske. setRotate (25); eske. setRotationAxis (Rotate. Z_AXIS); eske. setRotate (25);

Når setRotate-metoden kalles andre gang for å rotere boksen på z-aksen, tilbakestilles x-aksens rotasjon.

For å rotere på mer enn en akse må du bruke Rotate-klassen i stedet. Du oppretter en separat Rotate-forekomst for hver akse du vil rotere objektet på, og deretter legger du til alle roterende forekomster i objektets Transforms-samling via getTransforms (). Legg tilAll metode, slik:

Rotere rxBox = Ny Rotate (0, 0, 0, 0, Rotate. X_AXIS); Roter ryBox = Ny Rotate (0, 0, 0, 0, Rotate. Y_AXIS); Rotate rzBox = new Rotate (0, 0, 0, 0, Rotate. Z_AXIS); rxBox. setAngle (30); ryBox. setAngle (50); rzBox. setAngle (30); eske. getTransforms (). addAll (rxBox, ryBox, rzBox);

Rotate-konstruktøren godtar fire parametere. De tre første er x-, y- og z-koordinatene til punktet i objektet gjennom hvilket rotasjonsaksen vil passere. Vanligvis angir du nuller for disse parametrene for å rotere objektet rundt midtpunktet. Den fjerde parameteren angir rotasjonsaksen.

Denne figuren viser hvordan boksen vises etter at den er rotert.

Boksen etter at den har blitt rotert.

JavaFX Programmeringseksempel: 3D Box - dummies

Redaktørens valg

Vanlige visuelle studio-tastaturgenveier - dummier

Vanlige visuelle studio-tastaturgenveier - dummier

Du kan få tilgang til mange av funksjonene du bruker i Visual Studio til Lag en Silverlight-applikasjon gjennom tastaturgenveier. Her er de vanlige snarveiene som hjelper deg med å utføre oppgaver raskt i Visual Studio. Tastatur snarvei Handling Ctrl + Alt + F1 Åpne Visual Studio Documentation Ctrl + Shift + B Bygg programmet Ctrl + F5 Kjør prosjektet Ctrl + Alt + X Åpne verktøykassen hvis ...

Velg riktig format for e-postmarkedsføringsmeldingen din - dummies

Velg riktig format for e-postmarkedsføringsmeldingen din - dummies

Som Du komponerer markedsførings-e-postene dine, husk at formatet på e-posten din visuelt kommuniserer hovedideen til innholdet før publikum selv begynner å lese det. Forbrukerne forventer at formatet på e-posten din samsvarer med informasjonen den inneholder, slik at bruk av riktig format bidrar til å bygge publikums tillit. Velg ...

Kombinere flere samtaler til handling i din markedsføring e-post - dummies

Kombinere flere samtaler til handling i din markedsføring e-post - dummies

Din e-postmarkedsføringslisten består sannsynligvis av prospekter og kunder i ulike stadier av kjøpesyklusen med litt forskjellige interesser, så en del av publikum vil aldri være klar til å reagere umiddelbart på hver handling. Selv om alle på din e-postliste er klare til handling, er dine anrop til handling ...

Redaktørens valg

Opprett en Pivot-tabell YTD-totalvisning for Excel-rapporten - dummies

Opprett en Pivot-tabell YTD-totalvisning for Excel-rapporten - dummies

En nyttig rapportvisning I et Excel-pivottabell er YTD-totalsvisningen. Noen ganger er det nyttig å fange et løp-total-visning for å analysere bevegelsen av tall på en årlig basis (YTD) basis. Denne figuren illustrerer et pivottabell som viser en løpende total omsetning per måned for hvert år. I denne visningen er du ...

Opprett en pivottabel ved hjelp av Excels interne datamodell - dummies

Opprett en pivottabel ved hjelp av Excels interne datamodell - dummies

I enkelte tilfeller vil du kanskje opprett et pivottabell fra grunnen ved hjelp av Excels eksisterende interne datamodell som kildedata. Her er trinnene for å gjøre det: Velg Sett inn → PivotTable fra båndet. Dialogboksen Create PivotTable åpnes. Velg alternativet Bruk en ekstern datakilde, som vist, og klikk deretter på ...

Hvordan lage en standard snikker i Power Pivot - dummies

Hvordan lage en standard snikker i Power Pivot - dummies

Slicers tilbyr et brukervennlig grensesnitt med som du kan filtrere en Power Pivot pivottabell. Det er på tide å lage din første slicer. Bare følg disse trinnene:

Redaktørens valg

Alarmhendelsen i GameMaker: Studio-dummies

Alarmhendelsen i GameMaker: Studio-dummies

Alarmer er utmerket for når du vil ha tid Handlinger i din spill i GameMaker: Studio. For eksempel, hvis du vil at spilleren bare skal skyte kuler en gang hvert annet sekund, kan du sette en alarm for det. Hvis du vil når nye fiendtlige fly vises, kan du sette en alarm for det ...

Flytt retningsaktive handlinger i GameMaker: Studio - dummies

Flytt retningsaktive handlinger i GameMaker: Studio - dummies

I GameMaker: Studio, Flytt-fanen er den første kategorien i vinduet Objektegenskaper. Her er en liste over hver av handlingene du kan tilordne objektene. I følgende definisjoner brukes begrepet Instance for å referere til hva handlingen påvirker. Men du konfigurerer handlingen i objektet ...

Andre hendelser i GameMaker: Studio - dummies

Andre hendelser i GameMaker: Studio - dummies

I GameMaker: Studio, Andre hendelser er de som ikke anses verdige av sitt eget sted på menyen Event. Disse andre hendelsene kan være ganske kjempebra. Menyelementene er ganske mye selvforklarende, så det er ikke nødvendig med detaljer her. For fullstendige beskrivelser av hver av disse elementene, kan du alltid trykke F1 i GameMaker og ...