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);
?? ?}
}