[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Java3Djp:00632] Re: Appearance,Textureサンプル追加



■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■    最近当たらない         ■■■■
■■■■    全然儲からない         ■■■■
■■■■    そんな、あなたに・・・     ■■■■
■■■■        ↓           ■■■■
■■■■  http://www.ncs-j.co.jp/odds.htm   ■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■

>  TextureTest.java (テクスチャー・マッピングのサンプル Primitive)を
>見ました。
>  コンパイルして動作させた環境は、以下の環境です。
>  ・WindowsNT4.0 + SP4
>  ・JBuilder2.01
>  ・JDK 1.2.1
>  ・Java3D 1.1.2
>
>  で、この空間に X軸, Y軸, Z軸 や グリッド を表示出来ないでしょうか?
>  3Dのプログラムを作る上で分かりやすいと思うので...。

  private BranchGroup createSceneGraph() {
    BranchGroup root = new BranchGroup();
    
    Transform3D t3d = new Transform3D();
    t3d.rotX(Math.PI / 4.0);
    Transform3D roty = new Transform3D();
    roty.rotY(Math.PI / 4.0);
    t3d.mul(roty);
    
    objTrans = new TransformGroup(t3d);

    Appearance ap = createAppearance();

    Transform3D bt3d = new Transform3D();
    bt3d.set(new Vector3d(-0.4, 0.0, 0.4));
    TransformGroup btrans = new TransformGroup(bt3d);
    btrans.addChild(
      new Box( 0.25f, 0.25f, 0.25f,
               Primitive.GENERATE_TEXTURE_COORDS,
               ap ) );
    objTrans.addChild(btrans);

// グリッドを追加 
    
    double[] vertices = { -0.8, 0.0, -0.8,
                          -0.8, 0.0,  0.8,
                          -0.4, 0.0, -0.8,
                          -0.4, 0.0,  0.8,
                           0.0, 0.0, -0.8,
                           0.0, 0.0,  0.8,
                           0.4, 0.0, -0.8,
                           0.4, 0.0,  0.8,
                           0.8, 0.0, -0.8,
                           0.8, 0.0,  0.8,
                          -0.8, 0.0, -0.8,
                           0.8, 0.0, -0.8,
                          -0.8, 0.0, -0.4,
                           0.8, 0.0, -0.4,
                          -0.8, 0.0,  0.0,
                           0.8, 0.0,  0.0,
                          -0.8, 0.0,  0.4,
                           0.8, 0.0,  0.4,
                          -0.8, 0.0,  0.8,
                           0.8, 0.0,  0.8 };

    LineArray geom = new LineArray( vertices.length, GeometryArray.COORDINATES);
    geom.setCoordinates(0, vertices);
    Shape3D grid = new Shape3D(geom);
    objTrans.addChild(grid);

// ここまで

    Transform3D cyt3d = new Transform3D();
    cyt3d.set(new Vector3d(-0.4, 0.0, -0.4));
    TransformGroup cytrans = new TransformGroup(cyt3d);
    cytrans.addChild(
      new Cylinder( 0.3f, 0.6f, Primitive.GENERATE_TEXTURE_COORDS, ap) );
    objTrans.addChild(cytrans);
    
    Transform3D cnt3d = new Transform3D();
    cnt3d.set(new Vector3d(0.4, 0.0, 0.4));
    TransformGroup cntrans = new TransformGroup(cnt3d);
    cntrans.addChild(
      new Cone( 0.3f, 0.6f, Primitive.GENERATE_TEXTURE_COORDS, ap) );
    objTrans.addChild(cntrans);
    
    Transform3D st3d = new Transform3D();
    st3d.set(new Vector3d(0.4, 0.0, -0.4));
    TransformGroup strans = new TransformGroup(st3d);
    strans.addChild(
      new Sphere( 0.3f, Primitive.GENERATE_TEXTURE_COORDS, ap) );
    objTrans.addChild(strans);
    
    root.addChild(objTrans);
    
    return root;
  }

こんな感じでよろしいでしょうか。:)
-- 
えんどう やすゆき <yasuyuki@xxxxxxxxxx>
http://www.javaopen.org/jfriends/ (Java互助会ホームページ)