`
wangleide414
  • 浏览: 606900 次
  • 性别: 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...

    java3d开发参考教程

    另外,在使用Java 3D开发时,需要注意版权问题,因为有些模型和资源可能受版权保护。在应用这些资源时,如果用于商业目的,务必确保自己拥有使用权或已经取得了相应的授权。 由于教程是基于网络资源提供的,建议在...

    Java 3D 开发包

    这个开发包包含多个版本,如java3d-1_3-windows-i586-directx-sdk.exe、java3d-1_5_1-windows-i586.exe和java3d-1.5.0.exe,分别对应不同的更新和优化,适应不同开发者的需求。 1. **Java 3D API**: Java 3D API...

    Java 3D开发教程

    Java 3D开发教程是针对使用Java语言进行三维图形编程的学习资源,主要涵盖了OpenGL函数集的使用、OpenGL编程的基础知识以及三维图形编程的指南。在Java 3D领域,开发者可以利用强大的Java API来创建复杂的三维场景,...

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

    7. **使用Java3D开发工具包**:从提供的文件名`java3D开发工具包.rar`来看,这可能包含了一些有用的示例代码、文档或工具。解压后,研究其中的内容,可以帮助更好地理解和使用Java3D。 8. **参考搭建指南**:`搭建...

    java 3D开发包

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

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

    JAVA_3D开发指导

    - **JAVA3D开发入门指导.pdf**:这份文档将深入讲解Java 3D的基础知识,包括安装、设置、基本对象创建以及 scenegraph 的构建。 - **官方文档**:Oracle提供的Java 3D官方文档是学习API的权威来源。 - **开源项目*...

    Java3D开发包

    这个开发包包含了三个核心的JAR文件:`j3dcore.jar`、`j3dutils.jar`和`vecmath.jar`,这些都是Java3D开发的重要组件。 1. `j3dcore.jar`: 这是Java3D的核心库,包含了大部分的Java3D API。它提供了场景图(Scene...

    Java 3D开发 s

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

    移动java 3D开发指南

    《移动Java 3D开发指南》是一本专为开发者准备的深入教程,旨在帮助读者掌握在移动设备上使用Java进行3D图形编程的技术。通过学习本书,你可以了解到如何利用Java技术构建富有交互性和视觉吸引力的3D应用,尤其是在...

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

    在本文中,我们将深入探讨Java3D开发环境的搭建过程,并提供必要的插件下载信息。 首先,你需要确保已经安装了Java Development Kit (JDK),这是使用Java3D的前提。JDK是Java编程的基础,包含了编译器、调试工具和...

    移动Java 3D开发指南(PDF).rar

    移动Java 3D开发是Java技术在移动设备上实现三维图形和游戏的一种方式。随着智能手机和平板电脑性能的提升,3D图形在移动平台上的应用越来越广泛,这本《移动Java 3D开发指南》正是为了解决开发者在这个领域的学习...

    java3D开发工具包

    开发3D应用时,Java3D提供了一些关键类,如`SceneGraphObject`作为所有3D对象的基类,`BranchGroup`用于组织场景中的多个对象,`TransformGroup`用于控制对象的位置和旋转,`Shape3D`用于表示基本几何形状,以及`...

    java3D开发包

    在实际开发中,Java3D可以应用于多种领域,如虚拟现实、科学可视化、游戏开发和教育软件。它简化了3D图形编程,使得具有Java背景的开发者无需深入学习OpenGL底层细节,也能创建引人入胜的3D应用。虽然现代的Java图形...

    移动Java 3D开发指南(PDF).zip

    移动Java 3D开发主要涉及的是在J2ME(Java 2 Micro Edition)平台上构建三维图形应用程序的技术。J2ME是Java的一个子集,专为资源有限的移动设备设计,如手机和平板电脑。本指南重点讲解了如何在这些设备上实现令人...

    java 3D依赖的jar包

    在Java 3D开发中,有几个关键的jar包是必不可少的,这些包在提供的描述中已经列出: 1. **j3d-core-1.3.1.jar**:这是Java 3D的核心库,包含了实现3D图形功能的基本类和接口。它提供了一个面向对象的API,用于构建...

    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的最好参考资料,在此...

Global site tag (gtag.js) - Google Analytics