Dator > hur man kan dölja en bild i en 3-D -modellen med Java

  • hur man kan dölja en bild i en 3-D -modellen med Java


  • Bilder i Java 3- D -program skapas med utseendet klassen . Dessa bilder ingår normalt GIF eller JPEG texturer , som ett Utseende objekt gäller en modell genom Bitmappningsprocessen . Utseende klassen erbjuder utvecklare sätt att visa bilder . Utvecklare kan också dölja en bild för en modell genom att skapa en dubblett modell , en som inte har någon bitmapp konsistens . En fördel med att dölja en modells struktur under körning är förmågan att skapa speciella effekter, t. ex. ett landskap med gröna ängar eller dammiga slätter .

    Du behöver :
    Java Software Development Kit
    . Java 3- D -API.


    1 .
    Öppna en ordbehandlare eller textredigerare och skapa ett dokument . Klistra in i dokumentet följande program , som visar ett plan modell med bitmappad konsistens . Du kommer att dölja detta textur bild i ett senare steg





    import java. applet. Applet .

    Importera java. awt. BorderLayout ;

    import java. awt. GraphicsConfiguration ;

    import com. sun. j3d. utils. geometry . * ;

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

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

    BranchGroup composeScene () {

    BranchGroup sceneParent=new BranchGroup () ;

    QuadArray basicPlane=new QuadArray (4 , GeometryArray . KOORDINATER

    | GeometryArray. TEXTURE_COORDINATE_2 ) ;

    Point3f somePoint=new Point3f (-3. 0f , 3. 0f , 0. 0f ) ;

    basicPlane . setCoordinate (0 , somePoint ) ,

    somePoint. set (-3. 0f , 3. 0f-, 0. 0f ) ;

    basicPlane. setCoordinate (1 , somePoint ) ,

    somePoint. set ( 3. 0f , 3. 0f-, 0. 0f ) ;

    basicPlane. setCoordinate (2 , somePoint ) ,

    somePoint. set ( 3. 0f , 3. 0f , 0. 0f ) ;

    basicPlane . setCoordinate (3 , somePoint ) ,

    TexCoord2f textureVertex=new TexCoord2f ( 0. 0f , 1. 0f ) ;

    basicPlane. setTextureCoordinate ( 0 , 0 , textureVertex ) ,

    textureVertex. set ( 0. 0f , 0. 0f ) ;

    basicPlane. setTextureCoordinate (0, 1 , textureVertex ) ,

    textureVertex. set ( 1. 0f , 0. 0f ) ;

    basicPlane. setTextureCoordinate ( 0 , 2 , textureVertex ) ,

    textureVertex. set ( 1. 0f , 1. 0f ) ;

    basicPlane. setTextureCoordinate (0 , 3 , textureVertex ) ,



    //Skapa utseende

    Utseende objLook=nytt utseende () ;

    String filename=" TextureImage . gif " ;

    TextureLoader ImageLoader=new TextureLoader ( filnamn, null ) ;

    ImageComponent2D an_image=imageloader. getImage () ;

    om ( an_image == null ) {

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

    }



    Texture2D objTexture=new Texture2D ( Texture. BASE_LEVEL , Texture. RGBA , an_image. getWidth ( ) , an_image. getHeight ());

    objTexture. setImage (0 , an_image ) ;

    objLook. setTexture ( objTexture ) ,

    objLook . setTransparencyAttributes (

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

    Shape3D planeObj=new Shape3D ( basicPlane , objLook ) ,

    sceneParent . addChild ( planeObj ) ,

    återvända sceneParent ;

    }



    offentliga HideImageApp () {

    setLayout ( ny BorderLayout ());

    GraphicsConfiguration grafxCfg=

    SimpleUniverse. getPreferredConfiguration () ;

    Canvas3D canvas1=ny Canvas3D ( grafxCfg ) ,

    add ( "Center " , canvas1 ) ;

    canvas1 . setStereoEnable ( falskt ) ,

    SimpleUniverse uni=new SimpleUniverse ( canvas1 ) ,

    //flytta synvinkel

    ViewingPlatform viewPlat1=uni. getViewingPlatform ( ) ;

    TransformGroup vpTransGroup=viewPlat1. getViewPlatformTransform () ;

    Transform3D camTransform1=new Transform3D () ;

    vpTransGroup. getTransform ( camTransform1 ) ,

    camTransform1. lookAt ( VIEWER_POS , nya Point3d (0,0,0 ) , nya Vector3D (0,1,0 ) ) ;

    camTransform1 . invertsocker () ;

    vpTransGroup. setTransform ( camTransform1 ) ,

    uni. addBranchGraph ( composeScene ());

    }



    public static void main ( String argv [] )

    {

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

    }

    }
    2
    Spara dokumentet som " HideImageApp. java " med filtypen " Plain Text . " Java -kompilator kräver vanliga textfiler som indata .
    3 .
    Skapa en GIF- bild med måtten 256-256 bildpunkter med Windows Paint eller andra bildbehandlingsprogram programmet . Spara bilden i samma mapp som Java -filen med namnet " TextureImage. gif . "
    4 .
    Kör en kommandotolk i mappen som innehåller Java och bildfiler , sedan sammanställa programmet genom att skriva " javac *. java . "
    5 .
    Kör programmet genom att ange " java HideImageApp " på kommandoraden. Programmet kommer att köra och visa planet med textur skapade i steg 3
    6
    Typ i det Java -filen öppnas i din ordbehandlare följande uttalande efter " objLook. setTransparencyAttributes " . : " Texture2D dummyTexture=ny Texture2D ();"



    Detta uttalande skapar en struktur med en standard utseende , eller en tom bild .
    7
    Skriv detta uttalande efter uttalande " sceneParent. addChild ( planeObj ) " : " objLook. setTexture ( dummyTexture ), "


    .
    Detta uttalande ställer modellens struktur till den tomma textur som gjorts i föregående steg . Dess sätter konsistens efter scenen skapas , som visar att du kan ändra eller dölja en modell image efter montering en 3- D scen .
    8 .
    kompilera och kör programmet som du gjorde i steg 4 och 5 . Den ursprungliga struktur skapas kommer att döljas av standard tomma texturen från Steg 6 .


Previous:nothing Next:nivåer av java certifiering





Relaterade artiklar


  • Hur aktiverar jag ett javascript mycket enklare ?
  • java tutorial för att fästa en applet till en ram
  • hur man hittar filer i asp
  • hur du ändrar en tabell i Oracle SQL
  • hur man drar ett diagram processflöde
  • hur du lägger upp flera bilder i php
  • hur man läser data från ett Excel-ark med VB- makron kodning
  • hur man bestämmer antalet timmar mellan två tider i Oracle SQL
  • Microsoft SQL lagrade procedurer
  • Hur klarar i värde och passera genom hänvisning arbete i Visual Basic ?