Dator > hur du infogar en bild i en 3D- modell med Java

  • hur du infogar en bild i en 3D- modell med Java


  • Arbeta med Javas 3-D klasser innebär att man definierar ett objekts geometri som beskriver dess form och definierar sitt utseende . Ett sätt att påverka ett objekts utseende är genom att fästa en befintlig bild till det . Detta tillvägagångssätt , som kallas bitmapp texturering , gör det möjligt att skapa mycket komplexa och realistiska letar objekt från några bilder appliceras på enkel geometri . Till exempel genom att tillämpa ett foto av gräs till en terrängmodell kan du skapa illusionen av en plysch äng

    Du behöver : .
    Java Software Development Kit .
    Java 3- D programgränssnitt .


    1 .
    Öppna en textredigerare eller ordbehandlare och klistra in i ett nytt dokument med Java-programmet i slutet av detta steg .



    Programmet konstruerar bilden ( som alla Java 3- D program gör ) genom att konstruera en " scen graf , "som du kan visualisera på papper som en enkel träd-liknande struktur med förälder och barn objekt . Den översta förälder i en scen är BranchGroup objektet , enligt vilka programmet fäster ( genom parentOfScene . addChild funktionsanrop ) geometri en enkel modell , ett plan . Den ApplyImageToModelProgram funktion skapar komponenter till kompletta 3-D- scen , inklusive duk , ( klass " Canvas3D " ) , universum ( klassen " SimpleUniverse " ) och betraktarens position ( klass " ViewingPlatform " ) .



    programkoden under kommentaren " Lägg till bilden i modellen " skapar en " Utseende " objekt , som gäller en bildfil till modellen .







    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 utökar Applet {

    privat static final Point3d USERPOSITION=new Point3d ( 5,2,7 ) ,



    BranchGroup makeTheScene ( ) {

    BranchGroup parentOfScene=new BranchGroup () ;

    QuadArray simpleModel=new QuadArray (4 , GeometryArray . KOORDINATER

    | 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 ) ,



    //Lägg till bilden till modell

    Utseende objectsAppearance=nytt utseende () ;

    String textureFilename=" someImage . gif " ;

    TextureLoader ImageLoader=new TextureLoader ( textureFilename , null ) ;

    ImageComponent2D the_image=imageloader. getImage () ;

    om ( the_image == null ) {

    System. out. println ( " Bilden belastning misslyckades . ");

    }



    Texture2D objectsTexture=new Texture2D ( Texture. BASE_LEVEL , Texture. RGBA ,

    the_image. getWidth ( ) , the_image. getHeight ());

    objectsTexture. setImage ( 0 , the_image ) ,

    objectsAppearance . setTexture ( objectsTexture ) ,

    objectsAppearance. setTransparencyAttributes (

    nya TransparencyAttributes ( TransparencyAttributes. FASTEST , 0,1 f )) ;



    //Skapa själva modellen

    Shape3D planeObj=new Shape3D ( simpleModel , objectsAppearance ) ,



    parentOfScene. addChild ( planeObj ) ;

    återvända parentOfScene ;

    }



    offentliga ApplyImageToModelProgram () {

    setLayout ( ny BorderLayout ());

    GraphicsConfiguration gfxConfig=

    SimpleUniverse . getPreferredConfiguration () ;

    Canvas3D theCanvas=new Canvas3D ( gfxConfig ) ,

    add ( "Center " , theCanvas ) ;

    theCanvas. setStereoEnable ( false ) ;

    SimpleUniverse universum=new SimpleUniverse ( theCanvas ) ,

    //flytta synvinkel

    ViewingPlatform viewPlatform=universe. getViewingPlatform () ;

    TransformGroup viewPlatTransGroup=viewPlatform. getViewPlatformTransform () ;

    Transform3D camTform=new Transform3D () ;

    viewPlatTransGroup . getTransform ( camTform ) ,

    camTform. lookAt ( USERPOSITION , nya Point3d (0,0,0 ) , nya Vector3D (0,1,0 ) ) ;

    camTform . invertsocker () ;

    viewPlatTransGroup. setTransform ( camTform ) ,

    universe. addBranchGraph ( makeTheScene ());

    }



    public static void main ( String argv [] )

    {

    nya Mainframe ( ny ApplyImageToModelProgram ( ) , 256 , 256 ) .

    }

    }
    2
    Gör en GIF- bild vars mått är en effekt av två med hjälp av ett bildbehandlingsprogram programmet . Till exempel , 8 från 8 ( två till den tredje makten ) , 16 av 16 ( två upphöjt till fyra ) , 256 genom 256, ( två till åttonde makten ) . Spara bilden som " someimage. gif " i samma mapp som din java -filen .
    3 .
    Spara filen som " ApplyImageToModelProgram. java , " med filtypen inställd på " Plain text , att " se till att kompilatorn kan läsa programkoden .
    4 .
    Klistra in följande HTML-dokument ( som behövs för att köra programmet ) till ett nytt textdokument . Spara dokumentet med namnet " ApplyImageToModelProgram . html , "i samma mapp som java källfilen .






    kodbasen=" . "width=500 height=500 >





    5 .
    Öppna en DOS-prompt i mappen som innehåller java -filen som du sparade i steg 2 . Kompilera programmet med " javac ApplyImageToModelProgra. java . "
    6 .
    Kör
    programmet med följande kommando:



    appletviewer ApplyImageToModelProgram . HTML



    appletviewer program kommer att visa modellen med bilden från den " someImage. gif " fil .


Previous:nothing Next:Hur tar jag bort ett dokument VBA ord ?





Relaterade artiklar


  • hur du skickar en html- mail med python
  • hur man installerar komponenter hårdvara
  • hur man skriver en kopia konstruktor
  • hur man hittar försvunna poster med SQL
  • Vad är Windows api i Visual Basic ?
  • fördelarna med Java 1.5
  • hur man ska utföra en SQL- fil från en kommandorad
  • vad är filändelsen tuss ?
  • Microsoft Visual program
  • hur man kan jämföra strängen java script