课题需要根据实验数据画出3d曲面图,来展示二维数据,所以使用java3d来实现。这里是java3d的学习记录。
1.java 3d简介
java 3d是java语言在三维图形领域的扩展,是一组应用编程接口(api)。利用java 3d提供的api,可以编写出基于网页的三维动画、各种计算机辅助教学软件和三维游戏等等。利用java 3d编写的程序,只需要编程人员调用这些api进行编程,而客户端只需要使用标准的java虚拟机就可以浏览,因此具有不需要安装插件的优点。
2.java3d的安装方法
我使用的jdk为j2sdk14版本,所以下载的java3d版本必须为1.4版本(文件名java3d-1_4_0_01-windows-i586.exe),下载地址如下:
http://java.sun.com/products/java-media/3d/1.4.0_01/download.html
java3d-1_4_0_01-windows-i586.exe安装完后,打开c:\program files\java\java3d\1.4.0_01文件夹,拷贝bin和lib文件夹至d:\j2sdk14\jre。
3. 一个例子
下面代码拷贝到记事本,存为hello.java。然后用javac hello.java编译,java hello.class运行。
import com.sun.j3d.utils.geometry.*;
import com.sun.j3d.utils.universe.*;
import javax.media.j3d.*;
import javax.vecmath.*;
public class hello {
public hello()
{
// 创建一个虚拟空间
simpleuniverse universe = new simpleuniverse();
// 创建一个用来包含对象的数据结构
branchgroup group = new branchgroup();
// 创建一个球并把它加入到group中
sphere sphere = new sphere(0.5f); // 小球的半径为0.5米
group.addchild(sphere);
color3f light1color = new color3f(1.8f, 0.1f, 0.1f);
// 设置光线的颜色
boundingsphere bounds = new boundingsphere(new point3d(0.0,0.0,0.0), 100.0);
// 设置光线的作用范围
vector3f light1direction = new vector3f(4.0f, -7.0f, -12.0f);
// 设置光线的方向
directionallight light1= new directionallight(light1color, light1direction);
// 指定颜色和方向,产生单向光源
light1.setinfluencingbounds(bounds);
// 把光线的作用范围加入光源中
group.addchild(light1);
// 将光源加入group组,安放观察点
universe.getviewingplatform().setnominalviewingtransform();
// 把group加入到虚拟空间中
universe.addbranchgraph(group);
}
public static void main(string[] args)
{
new hello();
}
}
若出现以下错误,则必须更新电脑的显示驱动,使之支持opengl1.2朝上版本。我电脑显示驱动下载地址http://drivers.mydrivers.com/download/206-82605-ati-mobility-radeon-8.3-for-winxp/。
java 3d error :wglgetextensionsstringarb not support !
-找不到指定的程序.
fallback to use standard choosepixelformat.
java 3d error : opengl1.2 or better is required
java.lang.illegalstateexception: gl_version
4. 网络上的java3d学习资料
(1)http://www.sun.com/desktop/java3d/collateral/
这里有sun公司为我们提供的学习资料。
(2)http://www.sdsc.edu/~nadeau/courses/vr99/java3d.zip
这是一个非常好的java3d学习资料。(12,058k),里面有许多例子。 字串3
大家可以从http://www.sdsc.edu/~nadeau/中得到vrml和java3d的许多资料。
======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/