这是个彩色六面体,可以用鼠标左键旋转,右键拖动,摁下滚轮前后移动缩放。
直接在命令行下转到文件目录,像普通java程序那样编译解释执行。用以测试Java3D开发运行环境是否配置正确。相关程序如下:
一些其他的Java3D资源资料可以在下面的文章中找到。
import java.applet.Applet;
import java.awt.BorderLayout;
import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.geometry.*;
import com.sun.j3d.utils.universe.*;
import javax.media.j3d.*;
import javax.vecmath.*;
import com.sun.j3d.utils.behaviors.mouse.MouseRotate;
import com.sun.j3d.utils.behaviors.mouse.MouseZoom;
import com.sun.j3d.utils.behaviors.mouse.MouseTranslate;
public class UglyCube extends Applet
{
private SimpleUniverse universe ;
public UglyCube()
{}
public void init()
{
//canvas to draw on, ask SimpleUniverse what config to use
Canvas3D canvas = new
Canvas3D(SimpleUniverse.getPreferredConfiguration());
setLayout(new BorderLayout());
add("Center", canvas);
//create top of our scene graph
BranchGroup scene = new BranchGroup();
//create universe, and attach our geometry to it.
SimpleUniverse u = new SimpleUniverse(canvas);
u.getViewingPlatform().setNominalViewingTransform();
// Create the bounding leaf node
BoundingSphere bounds = new BoundingSphere(new
Point3d(0.0,0.0,0.0), 100.0);
// Create the transform node
TransformGroup transformGroup = new TransformGroup();
transformGroup.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
transformGroup.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
// Create the drag behavior node
MouseRotate behavior = new MouseRotate();
behavior.setTransformGroup(transformGroup);
transformGroup.addChild(behavior);
behavior.setSchedulingBounds(bounds);
// Create the zoom behavior node
MouseZoom behavior2 = new MouseZoom();
behavior2.setTransformGroup(transformGroup);
transformGroup.addChild(behavior2);
behavior2.setSchedulingBounds(bounds);
// Create the zoom behavior node
MouseTranslate behavior3 = new MouseTranslate();
behavior3.setTransformGroup(transformGroup);
transformGroup.addChild(behavior3);
behavior3.setSchedulingBounds(bounds);
transformGroup.addChild(new ColorCube(0.4));
scene.addChild(transformGroup);
u.addBranchGraph(scene);
}
// The following allows UglyCube to be run as an
application
// as well as an applet
public static void main(String[] args)
{
new MainFrame(new UglyCube(), 256, 256);
}
}
http://hi.baidu.com/reason_shanshi/blog/item/85e5eb1186643011b8127b51.html