`
wangleide414
  • 浏览: 590622 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

JAVA 3D 开发

 
阅读更多

 

import java.applet.Applet;

import java.awt.BorderLayout;

import java.awt.Frame;

import java.awt.GraphicsConfiguration;

 

import javax.media.j3d.BoundingSphere;

import javax.media.j3d.BranchGroup;

import javax.media.j3d.Canvas3D;

import javax.media.j3d.Geometry;

import javax.media.j3d.GeometryArray;

import javax.media.j3d.IndexedLineArray;

import javax.media.j3d.Shape3D;

import javax.media.j3d.TransformGroup;

import javax.vecmath.Point3f;

 

import com.sun.j3d.utils.applet.MainFrame;

import com.sun.j3d.utils.behaviors.mouse.MouseRotate;

import com.sun.j3d.utils.geometry.ColorCube;

import com.sun.j3d.utils.universe.SimpleUniverse;

//import javax.media.jai.ColorCube;

 

// MouseRotateApp renders a single, interactively rotatable cube. 

 

public class MouseRotateApp extends Applet {

 

public BranchGroup createSceneGraph() {

// Create the root of the branch graph

BranchGroup objRoot = new BranchGroup();

 

TransformGroup objRotate = new TransformGroup();

objRotate.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);

objRotate.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);

 

objRoot.addChild(objRotate);

objRotate.addChild(new ColorCube(0.4));

objRoot.addChild(new Axis());

 

MouseRotate myMouseRotate = new MouseRotate();

myMouseRotate.setTransformGroup(objRotate);

myMouseRotate.setSchedulingBounds(new BoundingSphere());

objRoot.addChild(myMouseRotate);

 

// Let Java 3D perform optimizations on this scene graph.

objRoot.compile();

 

return objRoot;

} // end of CreateSceneGraph method of MouseRotateApp

 

// Create a simple scene and attach it to the virtual universe

 

public MouseRotateApp() {

setLayout(new BorderLayout());

GraphicsConfiguration config=SimpleUniverse.getPreferredConfiguration();

 

Canvas3D canvas3D=new Canvas3D(config);

add("Center", canvas3D);

 

BranchGroup scene = createSceneGraph();

 

// SimpleUniverse is a Convenience Utility class

SimpleUniverse simpleU = new SimpleUniverse(canvas3D);

 

// This will move the ViewPlatform back a bit so the

// objects in the scene can be viewed.

simpleU.getViewingPlatform().setNominalViewingTransform();

 

simpleU.addBranchGraph(scene);

} // end of MouseRotateApp (constructor)

 

// The following allows this to be run as an application

// as well as an applet

 

public static void main(String[] args) {

System.out

.print("MouseRotateApp.java \n- a demonstration of using the MouseRotate ");

System.out

.println("utility behavior class to provide interaction in a Java 3D scene.");

System.out

.println("Hold the mouse button while moving the mouse to make the cube rotate.");

System.out

.println("This is a simple example progam from The Java 3D API Tutorial.");

System.out.println("The Java 3D Tutorial is available on the web at:");

System.out.println("http://www.sun.com/desktop/java3d/collateral");

Frame frame = new MainFrame(new MouseRotateApp(), 256, 256);

} // end of main (method of MouseRotateApp)

 

} // end of class MouseRotateApp

 

/*

 * Getting Started with the Java 3D API written in Java 3D

 * 

 * This program demonstrates: 1. writing a visual object class In this program,

 * Axis class defines a visual object This particular class extends Shape3D See

 * the text for a discussion. 2. Using LineArray to draw 3D lines.

 */

 

class Axis extends Shape3D {

 

// //////////////////////////////////////////

//

// create axis visual object

//

public Axis() {

 

this.setGeometry(createGeometry());

 

}

 

private Geometry createGeometry() {

// create line for X axis

IndexedLineArray axisLines = new IndexedLineArray(18,

GeometryArray.COORDINATES, 30);

 

axisLines.setCoordinate(0, new Point3f(-1.0f, 0.0f, 0.0f));

axisLines.setCoordinate(1, new Point3f(1.0f, 0.0f, 0.0f));

axisLines.setCoordinate(2, new Point3f(0.9f, 0.1f, 0.1f));

axisLines.setCoordinate(3, new Point3f(0.9f, -0.1f, 0.1f));

axisLines.setCoordinate(4, new Point3f(0.9f, 0.1f, -0.1f));

axisLines.setCoordinate(5, new Point3f(0.9f, -0.1f, -0.1f));

axisLines.setCoordinate(6, new Point3f(0.0f, -1.0f, 0.0f));

axisLines.setCoordinate(7, new Point3f(0.0f, 1.0f, 0.0f));

axisLines.setCoordinate(8, new Point3f(0.1f, 0.9f, 0.1f));

axisLines.setCoordinate(9, new Point3f(-0.1f, 0.9f, 0.1f));

axisLines.setCoordinate(10, new Point3f(0.1f, 0.9f, -0.1f));

axisLines.setCoordinate(11, new Point3f(-0.1f, 0.9f, -0.1f));

axisLines.setCoordinate(12, new Point3f(0.0f, 0.0f, -1.0f));

axisLines.setCoordinate(13, new Point3f(0.0f, 0.0f, 1.0f));

axisLines.setCoordinate(14, new Point3f(0.1f, 0.1f, 0.9f));

axisLines.setCoordinate(15, new Point3f(-0.1f, 0.1f, 0.9f));

axisLines.setCoordinate(16, new Point3f(0.1f, -0.1f, 0.9f));

axisLines.setCoordinate(17, new Point3f(-0.1f, -0.1f, 0.9f));

 

axisLines.setCoordinateIndex(0, 0);

axisLines.setCoordinateIndex(1, 1);

axisLines.setCoordinateIndex(2, 2);

axisLines.setCoordinateIndex(3, 1);

axisLines.setCoordinateIndex(4, 3);

axisLines.setCoordinateIndex(5, 1);

axisLines.setCoordinateIndex(6, 4);

axisLines.setCoordinateIndex(7, 1);

axisLines.setCoordinateIndex(8, 5);

axisLines.setCoordinateIndex(9, 1);

axisLines.setCoordinateIndex(10, 6);

axisLines.setCoordinateIndex(11, 7);

axisLines.setCoordinateIndex(12, 8);

axisLines.setCoordinateIndex(13, 7);

axisLines.setCoordinateIndex(14, 9);

axisLines.setCoordinateIndex(15, 7);

axisLines.setCoordinateIndex(16, 10);

axisLines.setCoordinateIndex(17, 7);

axisLines.setCoordinateIndex(18, 11);

axisLines.setCoordinateIndex(19, 7);

axisLines.setCoordinateIndex(20, 12);

axisLines.setCoordinateIndex(21, 13);

axisLines.setCoordinateIndex(22, 14);

axisLines.setCoordinateIndex(23, 13);

axisLines.setCoordinateIndex(24, 15);

axisLines.setCoordinateIndex(25, 13);

axisLines.setCoordinateIndex(26, 16);

axisLines.setCoordinateIndex(27, 13);

axisLines.setCoordinateIndex(28, 17);

axisLines.setCoordinateIndex(29, 13);

 

return axisLines;

 

} // end of Axis createGeometry()

 

} // end of class Axis

 

 

附件中有效果和jar包

 

j3d-1_5_2-windows-i586.zip的使用:

 

解压--》里边有j3d-jre.zip,继续解压j3d-jre.zip。--》里边有bin 和 lib 文件夹, 其中lib文件夹中是我们需要的jar包,要完整的添加到CLASSPATH中,bin文件夹下的dll 文件 要放在 jdk/jre/lib/ext(机器中的JAVA安装目录) 中。

 


  • 大小: 1.6 KB
分享到:
评论
2 楼 libochongjing 2013-04-24  
学习java 3d刚刚起步,遇到些问题。请教博主,java 3d 如何画圆台?谢谢
1 楼 brospy 2013-03-26  
  博主威武!

相关推荐

    java3d开发jar包

    java3d开发jar包java3d开发jar包java3d开发jar包java3d开发jar包java3d开发jar包java3d开发jar包java3d开发jar包java3d开发jar包java3d开发jar包java3d开发jar包java3d开发jar包java3d开发jar包java3d开发jar包java...

    java 3D开发包

    java 3D开发包,exe文件,安装后,就可以在JDK目录下看到一个名为“Java3D”的文件夹,里面就是java 3D开发工具,\Java3D\1.5.1\lib\ext\ 目录下有三个jar包,分别为j3dcore.jar、j3dutils.jar、vecmath.jar,开发...

    Java 3D开发教程

    Java 3D 开发教程 0openGl函数集 OpenGL编程入门 OpenGL三维图形编程指南

    Java 3D开发 s

    Java 3D开发,Java 3D开的电书

    java3D开发包

    该压缩软件包含java环境下三维开发工具

    Java 3D 开发包

    有3个不同版本的Java 3D开发包,选择合适的进行安装即可,安装后你就可以使用其中的.jar文件,导入到你的项目工程中即可

    java3d开发参考教程

    初学java3d的人员很有必要下载该教程,本人感觉这资料还挺好用的。建议大家看看

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

    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....

    java3D开发环境搭建详细步骤和所需最新插件打包下载

    java3D开发环境搭建详细步骤和所需插件打包下载,都是最新版的插件,我在Myeclipse7.5上测试通过。放心下载。

    JAVA_3D开发指导

    JAVA_3D开发指导(经典),作为java 3D技术开发的必读教程

    java3D开发环境搭建详细步骤和所需插件打包下载

    java3D开发环境搭建详细步骤和3个所需插件打包下载。

    java3d源码-Java3D:Java3D开发资源汇编

    java3d源码Java3D API 资源 下载 Java3D 1.5.2(Sun Microsystems/Oracle 的最终稳定版本) Java3D 1.6.1(JogAmp 社区的最新稳定版本) 安装 解压 Java3D 1.5.2 版本 Eclipse/Netbeans 安装 1.5.2 安装 Java3D ...

    移动Java 3D开发指南

    本教程是J2ME开发网组织网友翻译的SonyEricsson开发者世界的Mobile Java 3D的文章的集合。已经得到了SonyEricsson的授权,本文未经J2ME开发网许可不得转载。 本教程是学习Mobile Java 3D的最好参考资料,在此...

    java3D开发工具包

    一个不错的JAVA3D包,希望大家喜欢

    Java3D开发包

    j3dcore.jar,j3dutils.jar,vecmath.jar

    Java3D

    内含:java3d-1_5_1-api-docs.zip java3d-1_5_1-windows-i586.exe Java 3D 编程实践_源码.exe

    java 3d入门教程

    java3d入门教程,中文 非常适合入门学习

    java3D骨骼动画.rar

    用java3d开发的骨骼3d图形源码。 用java3d开发的骨骼3d图形源码。 用java3d开发的骨骼3d图形源码。 用java3d开发的骨骼3d图形源码。

Global site tag (gtag.js) - Google Analytics