JAVA 3D开发工具包(3个版本安装包 + 一个用例)

AVA 3D开发工具包(3个版本),java3d-1_3、java3d-1_4、java3d-1_5,加一个例子。例子代码如下:


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.swing.JApplet;
import javax.vecmath.Point3d;

import com.sun.j3d.utils.geometry.ColorCube;
import com.sun.j3d.utils.universe.SimpleUniverse;
import com.sun.j3d.utils.universe.ViewingPlatform;
public class HelloUniverse extends JApplet {
public BranchGroup createSceneGraph() {
        BranchGroup objRoot = new BranchGroup();
        //新建一个变形组结点,初始化它
        //变形组结点指定一个单一的空间变形,通过一个Transform3D对象,
        //能对它的子结点定位,定向,定尺寸
        TransformGroup objTrans = new TransformGroup();
        //指定结点可以写入它的对象的变形信息。这样我们的行为代码就能在运行进修改它。
        objTrans.setCapability(
                            TransformGroup.ALLOW_TRANSFORM_WRITE);
        //根节结中加入这个变形组结点
        objRoot.addChild(objTrans);
        //新建一个例子Shape3D结点,并把它加入到场景图表中
        objTrans.addChild(new ColorCube(0.4));
        Transform3D yAxis = new Transform3D();
        /*
         * 提供转换一个时间值到一个0到1之间的alpha值的方法
         * 第一个参数loopCount:运行循环次数,-1表示无限循环
         * 第二个参数increasingAlphaDuration:alpha值从0到1的时间周期
         */
        Alpha rotationAlpha = new Alpha(-1, 4000);
        //新建旋转者,它将执行变形操作
        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;

你可能感兴趣的:(JAVA 3D开发工具包(3个版本安装包 + 一个用例))