Java3D-HelloWorld画正方体

关键词:Java3d,正方体
在运行程序的时候,请确保你已经安装了Java的3D工具包,否则是无法编译通过的。如果要下载Java3D的api可以点下面的连接: http://www.kutoku.info/images/java/100910/java3d-1_5_1-windows-i586.exe,在Windows下直接安装即可。
官方网站: http://www.oracle.com/technetwork/java/javase/tech/index-jsp-138252.html
程序运行后,展示一个3D的正方体。
下面是运行效果图:


程序如下:
package com.zakisoft.hw;

import java.applet.Applet;
import java.awt.BorderLayout;
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.Transform3D;
import javax.media.j3d.TransformGroup;
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 HelloUniverse extends Applet {

	private static final long serialVersionUID = 41293118815177506L;
	private SimpleUniverse u = null;

	public BranchGroup createSceneGraph() {
		BranchGroup objRoot = new BranchGroup();

		TransformGroup objTrans = new TransformGroup();
		objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
		objRoot.addChild(objTrans);

		// 创建一个3D对象,正方体
		objTrans.addChild(new ColorCube(0.4));

		Transform3D yAxis = new Transform3D();
		Alpha rotationAlpha = new Alpha(-1, 6000);

		RotationInterpolator rotator = new RotationInterpolator(rotationAlpha,
				objTrans, yAxis, 0.0f, (float) Math.PI * 2.0f);
		BoundingSphere bounds = new BoundingSphere(new Point3d(0.0, 0.0, 0.0),
				100.0);
		rotator.setSchedulingBounds(bounds);
		objRoot.addChild(rotator);

		objRoot.compile();

		return objRoot;
	}

	public HelloUniverse() {
	}

	public void init() {
		setLayout(new BorderLayout());
		GraphicsConfiguration config = SimpleUniverse
				.getPreferredConfiguration();

		Canvas3D c = new Canvas3D(config);
		add("Center", c);

		BranchGroup scene = createSceneGraph();
		u = new SimpleUniverse(c);

		u.getViewingPlatform().setNominalViewingTransform();

		u.addBranchGraph(scene);
	}

	public void destroy() {
		u.cleanup();
	}

	public static void main(String[] args) {
		new MainFrame(new HelloUniverse(), 512, 512);

	}
}


文章地址: http://javapub.iteye.com/blog/760437

你可能感兴趣的:(java,oracle,windows,C#,sun)