搭建java的3D的环境

1 篇文章 0 订阅
1 篇文章 0 订阅


1.下载java3d安装包,默认安装即可。
2.
打开eclipse,新建java3d项目。
3.“Project -> Properties -> Libraries -> add external jars”
导入安装包内的jar文件,一共3个。

下载3djdk地址:http://www.oracle.com/technetwork/java/javase/tech/index-jsp-138252.html


 

测试环境是否搭建好的代码:

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 Rectangle extends Applet
{
 private SimpleUniverse universe ;

 public Rectangle()
 {}   

 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 Rectangle(), 256, 256);  
 }
}

JAVA 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;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值