package com.wizard.J3D.HelloJava3D;
import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.Frame;
import java.awt.GraphicsConfigTemplate;
import java.awt.GraphicsConfiguration;
import javax.media.j3d.BranchGroup;
import javax.media.j3d.Canvas3D;
import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.geometry.ColorCube;
import com.sun.j3d.utils.universe.SimpleUniverse;
public class HelloJava3Da extends Applet{
public HelloJava3Da() {
// TODO Auto-generated constructor stub
this.setLayout(new BorderLayout());
/////////////////////////////////////////////////////////
//这一句在《Java指南》上没有写,不过自己做的时候一定要写上
//这个主要是用来获得一个图形配置
//
GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();
/////////////////////////////////////////////////////////
//
//这个3D布景获得要从一个图形配置
//
Canvas3D canvas3D = new Canvas3D(config);
this.add("Center",canvas3D);
SimpleUniverse simple = new SimpleUniverse(canvas3D);
simple.getViewingPlatform().setNominalViewingTransform();
BranchGroup scene = this.createSceneGraph();
/////////////////////////////////////////////////////////
//
//一定要编译
//
scene.compile();
simple.addBranchGraph(scene);
}
////////////////////////////////////////
//
// 这个是用来产生一个图像的,然后把他加入进场景
//
public BranchGroup createSceneGraph(){
BranchGroup objRoot = new BranchGroup();
objRoot.addChild(new ColorCube(0.4));
return objRoot;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
//用这个是为了好在窗口中运行,而不用在网页中运行。
Frame frame = new MainFrame(new HelloJava3Da(),256,256);
}
}