Huis Persoonlijke financiën JavaFX Programmeringsvoorbeeld: 3D Box - dummies

JavaFX Programmeringsvoorbeeld: 3D Box - dummies

Inhoudsopgave:

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

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

JavaFX heeft ingebouwde ondersteuning voor realistische 3D-modellering. De grafische scène van JavaFX is zelfs driedimensionaal van aard. De meeste JavaFX-programma's werken in slechts twee dimensies, waarbij alleen de x- en y-coördinaten worden opgegeven. Maar alles wat u hoeft te doen om in de derde dimensie te stappen, is om z-coördinaten te specificeren om de knooppunten van uw scènegrafiek in een driedimensionale ruimte te plaatsen.

JavaFX bevat een uitgebreide reeks klassen die zijn bedoeld voor het maken en visualiseren van 3D-objecten in 3D-werelden. U kunt driedimensionale vormen maken, zoals kubussen en cilinders. U kunt de virtuele camera verplaatsen in de 3D-ruimte om uw 3D-objecten vanuit verschillende hoeken en vanuit verschillende perspectieven te bekijken.

En je kunt zelfs lichtbronnen toevoegen om het uiteindelijke uiterlijk van je virtuele werelden nauwkeurig te regelen. Kortom, JavaFX kan verbluffende 3D-scènes produceren.

Voeg een 3D-box toe aan uw Java-wereld

Voeg in deze stap een object toe aan de 3D-wereld: in dit geval een box, weergegeven door de klasse Box. Hier is de code:

Box box = new Box (100, 100, 100); doos. setMaterial (bluestuff); doos. setTranslateX (150); doos. setTranslateY (-100); doos. setTranslateZ (-100); wortel. getChildren (). voeg (doos);

De Box-constructor accepteert drie argumenten die de breedte, hoogte en diepte van het vak vertegenwoordigen. In dit voorbeeld zijn alle drie ingesteld op 100. Het vak wordt dus getekend als een kubus met aan elke zijde 100 eenheden.

De doos krijgt hetzelfde materiaal als de cilinder; vervolgens wordt het op alle drie assen vertaald, zodat u een perspectiefweergave van het kader kunt hebben. De afbeelding laat zien hoe het vak verschijnt als het wordt weergegeven. Zoals u kunt zien, zijn de linker- en onderkant van de doos zichtbaar omdat u de positie van het vak omhoog en naar rechts hebt vertaald, zodat de camera wat perspectief kan krijgen.

Draai de 3D-box

Draai in deze stap het vakje om een ​​nog interessanter perspectiefbeeld te maken. Er zijn twee manieren om een ​​3D-object te roteren. Het eenvoudigste is om de methode setRotate van het object aan te roepen en een rotatiehoek toe te voegen:

box. setRotate (25);

Standaard roteert dit het object op zijn z-as. Als dit moeilijk te visualiseren is, stel je voor dat je het object spies met een lange stok die evenwijdig is aan de z-as. Draai vervolgens het voorwerp aan de spies.

Als u het object langs een andere as wilt draaien, roept u eerst de setRotationAxis op. Als u bijvoorbeeld het object op de x-as wilt laten draaien, gebruikt u dit vak:

. setRotationAxis (Rotate. X_AXIS); doos. setRotate (25);

Stel je voor dat je de spies door de doos met de spies evenwijdig aan de x-as laat lopen en vervolgens de doos 25 graden ronddraait.

Het enige probleem met het gebruik van de methode setRotate om een ​​3D-object te roteren, is dat het slechts op één as tegelijk werkt. Stel dat u het kader 25 graden wilt roteren op zowel de z- als de x-as. De volgende code zal dit niet bereiken:

kader. setRotationAxis (Rotate. X_AXIS); doos. setRotate (25); doos. setRotationAxis (Rotate. Z_AXIS); doos. setRotate (25);

Wanneer de methode setRotate de tweede keer wordt aangeroepen om het vak op de z-as te draaien, wordt de rotatie van de x-as opnieuw ingesteld.

Als u wilt roteren op meer dan één as, moet u in plaats daarvan de klasse Rotate gebruiken. U maakt een afzonderlijke Rotate-instantie voor elke as waarop u het object wilt draaien en voegt vervolgens alle exemplaren van Rotate toe aan de Transforms-verzameling van het object via getTransforms (). addAll-methode, zoals deze:

Rotate rxBox = new Rotate (0, 0, 0, 0, Rotate. X_AXIS); Roty ryBox = new 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); doos. getTransforms (). addAll (rxBox, ryBox, rzBox);

De Rotate-constructor accepteert vier parameters. De eerste drie zijn de x-, y- en z-coördinaten van het punt binnen het object waardoor de rotatie-as zal passeren. Doorgaans geeft u nullen op voor deze parameters om het object rond het middelpunt ervan te draaien. De vierde parameter geeft de rotatieas aan.

Deze afbeelding laat zien hoe het vak wordt weergegeven nadat het is geroteerd.

Het vakje nadat het is geroteerd.

JavaFX Programmeringsvoorbeeld: 3D Box - dummies

Bewerkers keuze

Hoe u Flash-video maakt en codeert - dummies

Hoe u Flash-video maakt en codeert - dummies

Als de pagina's die u maakt, zijn gewonnen ' t kan worden bekeken op mobiele apparaten (zoals een iPad of een smartphone), kunt u webpagina's maken met prachtige Flash-video. Adobe Flash Professional CS6 heeft een eigen ingebouwde video-encoder. Full-motionvideo in Flash is iets heel moois. U past de video aan voor het bekijken door de doelgroep ...

Hoe een aanpasbare interface te maken in CSS3 - dummies

Hoe een aanpasbare interface te maken in CSS3 - dummies

De grote variëteit en soorten schermen gebruikt om informatie weer te geven, maakt het nodig dat uw CSS3-commando's de gebruiker toestaan ​​om het formaat van de elementen naar wens aan te passen. In de meeste gevallen kunt u de gebruiker eenvoudig toestaan ​​om het element op elke gewenste grootte te maken. Er kunnen zich echter situaties voordoen waarin u de grootte van de grootte moet controleren ...

Hoe u een eenvoudige tabel op uw webpagina maakt - dummies

Hoe u een eenvoudige tabel op uw webpagina maakt - dummies

Tabellen laten u organiseer informatie op uw webpagina en geef het een georganiseerde uitstraling die uw bezoekers nuttig zullen vinden. Bij gebruik zoals bedoeld, hebben tabellen rijen en kolommen. Voor elke spot waar een rij en kolom elkaar kruisen, hebt u een tabelcel. Elke cel kan zijn eigen opmaak hebben: de gegevens erin ...

Bewerkers keuze

Hoe Postproduction Shareninging Filters werken - dummies

Hoe Postproduction Shareninging Filters werken - dummies

Verscherpingsfilters werken in postproductie door de randen (of aangrenzende gebieden met tonaal contrast) te benadrukken aan elkaar) in een afbeelding. Ze creëren een fijne highlight aan de donkere kant van de rand en een piepklein lowlight aan de lichtere kant van de rand. Dit toegevoegde contrast zorgt ervoor dat de randen er scherper uitzien vanaf een ...

HDR Work-Flow voor foto's met één belichting - dummies

HDR Work-Flow voor foto's met één belichting - dummies

In grote lijnen, enkele belichting hoog dynamisch bereik volgt dezelfde workflow als HDR-fotografie tussen haakjes. Er kunnen kleine verschillen zijn, dus hier is een overzicht van de werkstroom: configureer uw camera voor single-shot HDR. Het enige dat u zoekt, is de beste foto die u kunt maken. Besteed aandacht aan de lichtomstandigheden, het onderwerp, beweging en ...

Geavanceerde compacte en superzoomcamera's voor HDR-fotografie - dummies

Geavanceerde compacte en superzoomcamera's voor HDR-fotografie - dummies

Stap omhoog van compacte digitale camera's binnen het budgetbereik, vindt u duurdere compacte digitale camera's voor HDR-fotografie, ook wel high-end compacts, superzoomlenzen en dSLR-look-alikes genoemd. Er zijn zoveel vaak overlappende categorieën dat het je hoofd laat draaien. De twee dingen die deze reeks camera's gemeen hebben, zijn hun ...

Bewerkers keuze

In te schakelen Class Tracking in QuickBooks 2013 - dummies

In te schakelen Class Tracking in QuickBooks 2013 - dummies

Om activity-based costing te gebruiken (ABC ) in QuickBooks 2013 moet u de QuickBooks Class Tracking-functie inschakelen. Met Class Tracking kunt u inkomsten- en onkostentransacties categoriseren als niet alleen vallen in inkomsten- en uitgavenrekeningen, maar ook als vallen in bepaalde klassen. Volg deze stappen om Class Tracking in QuickBooks in te schakelen: Kies Bewerken → Voorkeuren ...

Gebruikt om een ​​exemplaar van een QuickBooks-gegevensbestand te gebruiken - dummies

Gebruikt om een ​​exemplaar van een QuickBooks-gegevensbestand te gebruiken - dummies

Ongeacht of de client verzendt handmatig een accountantskopie van een QuickBooks-gegevensbestand, e-mails een accountantsexemplaar, of verzendt een accountantskopie via de Intuit-bestandsoverdrachtservice, u gebruikt de kopie van de accountant door Bestand → Verzend bedrijfsdossier → Accountantskopie → Open & converteer overzetten te kiezen Bestand commando. Wanneer u deze opdracht kiest, geeft QuickBooks een ...

Hoe Audit Trails te gebruiken in QuickBooks - dummies

Hoe Audit Trails te gebruiken in QuickBooks - dummies

Als u besluit om meerdere gebruikers toegang te geven tot de QuickBooks-gegevens bestand, zult u de QuickBooks Audit Trail-functie waarderen, die bijhoudt wie welke wijzigingen aan het QuickBooks-gegevensbestand aanbrengt. U kunt transacties niet verwijderen uit de lijst of geschiedenis van de audittrail, behalve door gegevens te archiveren en te condenseren. Audit trail inschakelen ...