Ourmessage的个人空间

BlogJava 首页 新随笔 联系 聚合 管理
  13 Posts :: 0 Stories :: 16 Comments :: 0 Trackbacks
package com.wizard.J3D.HelloJava3D;
import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.Frame;
import java.awt.GraphicsConfiguration;

import javax.media.j3d.Alpha;
import javax.media.j3d.BoundingSphere;
import javax.media.j3d.BranchGroup;
import javax.media.j3d.Canvas3D;
import javax.media.j3d.RotationInterpolator;
import javax.media.j3d.TransformGroup;
import javax.media.j3d.Transform3D;
import javax.vecmath.Point3d;

import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.universe.SimpleUniverse;
import com.sun.j3d.utils.geometry.ColorCube;

public class HelloJava3Dd extends Applet{
    public BranchGroup createSceneGraph(){
        BranchGroup objRoot = new BranchGroup();
        
        TransformGroup objSpin = new TransformGroup();
        objSpin.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
        TransformGroup objRotation = new TransformGroup();
        Transform3D rotate = new Transform3D();
        
        //注意在这里是绕那个轴转!
        rotate.rotX(Math.PI/5.0d);
        
        objRotation.setTransform(rotate);
        objRotation.addChild(objSpin);
        objRoot.addChild(objRotation);
        objSpin.addChild(new ColorCube(0.4));
       
        ///////////////////////////////////////////////////////
        //
        // 这一个Transform3D 是一个用来改变Y轴的方向的
        // 这样就可以使 旋转的方向发生变化
        //
        //
        Transform3D aixY = new Transform3D();
       
        aixY.rotX((float)Math.PI*2.0d/3.0d);
//        aixY.rotX((float)Math.PI/2.0d);
        Alpha alpha = new Alpha(-1,4000);
        
        RotationInterpolator rotation =
            new RotationInterpolator(alpha,objSpin,aixY,0.0f,2.0f*(float)(Math.PI));
        
        
        
        BoundingSphere bound =
            new BoundingSphere(new Point3d(0.0d,0.0d,0.0d),1.0d);
        rotation.setSchedulingBounds(bound);
        objSpin.addChild(rotation);
        objRoot.compile();
        return objRoot;
    }
    public HelloJava3Dd() {
        // TODO Auto-generated constructor stub
        this.setLayout(new BorderLayout());
        GraphicsConfiguration config =
            SimpleUniverse.getPreferredConfiguration();
        Canvas3D canvas3D = new Canvas3D(config);
        this.add("Center",canvas3D);
        SimpleUniverse simpleU = new SimpleUniverse(canvas3D);
        simpleU.getViewingPlatform().setNominalViewingTransform();
        BranchGroup scene = this.createSceneGraph();
        simpleU.addBranchGraph(scene);
        
    }

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Frame frame = new MainFrame(new HelloJava3Dd(),256,256);
    }

}// end for class HelloJava3Dd

posted on 2007-03-03 20:25 夜一 阅读(243) 评论(0)  编辑  收藏 所属分类: Java3D

只有注册用户登录后才能发表评论。


网站导航: