package com.wizard.J3D.HelloJava3D;
import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.GraphicsConfiguration;
import java.awt.Frame;
import javax.media.j3d.Alpha;
import javax.media.j3d.BoundingSphere;
import javax.media.j3d.BranchGroup;
import javax.media.j3d.PositionInterpolator;
import javax.media.j3d.TransformGroup;
import javax.media.j3d.Canvas3D;
import javax.vecmath.Point3d;
import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.geometry.ColorCube;
import com.sun.j3d.utils.universe.SimpleUniverse;
public class HelloJava3DTrans extends Applet{
public BranchGroup createSceneGraph(){
BranchGroup objRoot = new BranchGroup();
TransformGroup objSpin = new TransformGroup();
objSpin.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
objRoot.addChild(objSpin);
objSpin.addChild(new ColorCube(0.4));
Alpha alpha = new Alpha(-1,4000);
///////////////////////////////////////////////////////
//
// PositionInterpolator()是一个平移的绑定类
//
PositionInterpolator transform =
new PositionInterpolator(alpha,objSpin);
BoundingSphere bound =
new BoundingSphere(new Point3d(0.0d,0.0d,0.0d),100.1d);
transform.setSchedulingBounds(bound);
objSpin.addChild(transform);
objRoot.compile();
return objRoot;
}
public HelloJava3DTrans() {
// 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 HelloJava3DTrans(),256,256);
}
}