Werken met Java's 3 - D klassen gaat definiëren de geometrie van een object waarvan de vorm beschrijft en definieert het uiterlijk. Een manier van invloed zijn op het uiterlijk van een object is door het aanbrengen van een bestaande afbeelding om het. Deze benadering , zogenaamde bitmap textureren , maakt het mogelijk om zeer complexe en realistische objecten van enkele elementen die op eenvoudige geometrie . Bijvoorbeeld door het toepassen van een foto van gras om een terrein model , kunt u de illusie van een pluche weide creëren . Wat je nodig hebt Java software development kit Java 3 - D application programming interface Toon Meer Aanwijzingen 1 Open een teksteditor of tekstverwerker en plakken in een nieuw document het java-programma aan het eind van deze stap . het programma bouwt het beeld ( als alle java 3 - D -programma's ) door de aanleg van een ' scene graph ', die u kunt visualiseren op papier als een eenvoudige boom - achtige structuur met ouder en kind objecten . De top ouder van een scène is het BranchGroup object , waaronder het programma hecht ( via de parentOfScene.addChild functie oproep ) de geometrie van een eenvoudig model , een vliegtuig . De ApplyImageToModelProgram functie maakt onderdelen voor de 3 - D scene te voltooien , met inbegrip van het doek , ( class " Canvas3D " ) , het universum ( klasse " SimpleUniverse " ) en de positie van de kijker ( class " ViewingPlatform " ) . programmacode onder de opmerking " Voeg afbeelding voor model " creëert een " Appearance " object, dat een grafisch bestand geldt voor het model import java.applet.Applet ; . import java.awt . BorderLayout ; import java.awt.GraphicsConfiguration ; import com.sun.j3d.utils.geometry * ; . import com.sun.j3d.utils . applet.MainFrame ; import com.sun.j3d.utils.universe * ; . import com.sun.j3d.utils.image.TextureLoader ; import javax . media.j3d * ; . import javax.vecmath * ; . public class ApplyImageToModelProgram extends Applet { private static final Point3D USERPOSITION = new Point3D ( 5,2 , 7 ) ; BranchGroup makeTheScene ( ) op { BranchGroup parentOfScene = new BranchGroup ( ) ; QuadArray simpleModel = new QuadArray ( 4 , GeometryArray.COORDINATES | GeometryArray.TEXTURE_COORDINATE_2 ) ; Point3f vertex = new Point3f ( - 3.0f , 3.0f , 0.0f ) ; simpleModel.setCoordinate ( 0 , vertex ) ; vertex.set ( - 3.0f , - 3.0f , 0.0f ) ; simpleModel.setCoordinate ( 1 , vertex ) ; vertex.set ( 3.0f , - 3.0f , 0.0f ) ; simpleModel.setCoordinate ( 2 , vertex ) ; vertex.set ( 3.0f , 3.0f , 0.0f ) ; simpleModel.setCoordinate ( 3 , vertex ) ; TexCoord2f texturePoint = new TexCoord2f ( 0.0f , 1.0f ) ; simpleModel.setTextureCoordinate ( 0 , 0 , texturePoint ) ; texturePoint.set ( 0.0f , 0.0f ) ; simpleModel.setTextureCoordinate ( 0 , 1 , texturePoint ) ; texturePoint.set ( 1.0f , 0.0f ) ; simpleModel.setTextureCoordinate ( 0 , 2 , texturePoint ) ; texturePoint.set ( 1.0F , 1.0F ) ; simpleModel.setTextureCoordinate ( 0 , 3 , texturePoint ) ; //voeg het beeld aan model Verschijning objectsAppearance = new Appearance ( ) ; String textureFilename = " someImage.gif " ; TextureLoader imageLoader = new TextureLoader ( textureFilename , null ) ; ImageComponent2D the_image = imageloader.getImage ( ) ; if ( the_image == null ) { System.out.println ( " The image laden is mislukt . " ) ; } Texture2D objectsTexture = new Texture2D ( Texture.BASE_LEVEL , Texture.RGBA , the_image.getWidth ( ) , the_image.getHeight ( ) ) op ; objectsTexture.setImage ( 0 , TransparencyAttributes ( TransparencyAttributes.FASTEST , 0.1f ) ) ; //Maak werkelijke model Shape3D planeObj = new Shape3D ( simpleModel , objectsAppearance ) ; parentOfScene.addChild ( planeObj ) ; return parentOfScene ; } openbare ApplyImageToModelProgram ( ) { setLayout ( nieuw BorderLayout ( ) ) ; GraphicsConfiguration gfxConfig = SimpleUniverse.getPreferredConfiguration ( ) ; Canvas3D theCanvas = new Canvas3D ( gfxConfig ) ; add ( " Center " , theCanvas ) ; theCanvas.setStereoEnable ( false) ; SimpleUniverse universum = new SimpleUniverse ( theCanvas ) ; //bewegen het oogpunt ViewingPlatform viewPlatform = universe.getViewingPlatform ( ) op ; < br > TransformGroup viewPlatTransGroup = viewPlatform.getViewPlatformTransform ( ) ; Transform3D camTform = new Transform3D ( ) op ; viewPlatTransGroup.getTransform ( camTform ) ; camTform.lookAt ( USERPOSITION , nieuwe Point3D ( 0,0,0 ) , nieuwe static void main ( String argv [ ] ) op Twitter { nieuwe MainFrame ( nieuw ApplyImageToModelProgram ( ) , 256 , 256 ) ; } } < br > Pagina 2 Maak een GIF- afbeelding waarvan de afmetingen zijn een macht van twee met behulp van een beeldbewerkingsprogramma . bijvoorbeeld , 8 bij 8 ( twee tot de derde macht ) , 16 bij 16 ( twee aan de vierde vermogen) , 256 bij 256 , ( twee tot de achtste macht ) . Sla de afbeelding op als " someimage.gif " in dezelfde map als uw Java -bestand . 3 Sla het bestand op als " ApplyImageToModelProgram.java , " met bestandstype instelt op " Platte tekst , " om ervoor te zorgen dat de compiler het programma -code kan lezen . 4 Plak volgende HTML-document ( die nodig is om het programma uit te voeren ) in een nieuw tekstdocument . Sla het document met de naam " ApplyImageToModelProgram.html , " in dezelfde map als de java- bronbestand . < applet code = " ApplyImageToModelProgram.class " codebase = " . " breedte = 500 height > < /applet < /html > < br = 500 > > 5 Open een DOS-prompt in de map met het java -bestand dat u hebt opgeslagen in stap 2 . Compileer het programma met " javac ApplyImageToModelProgra.java . " 6 Start het programma met dit command : Appletviewer ApplyImageToModelProgram.HTML de Appletviewer programma zal het model weergegeven met het beeld van de " someImage.gif " file < . br > |