00000011.htm

来自「水木清华BBS」· HTM 代码 · 共 84 行

HTM
84
字号
<HTML><HEAD>  <TITLE>BBS水木清华站∶精华区</TITLE></HEAD><BODY><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER>发信人:&nbsp;vrml&nbsp;(3d),&nbsp;信区:&nbsp;Java&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>标&nbsp;&nbsp;题:&nbsp;JAVA3D学习系列(11)--Wavefront的OBJ图形调用&nbsp;<BR>发信站:&nbsp;BBS&nbsp;水木清华站&nbsp;(Wed&nbsp;Apr&nbsp;14&nbsp;11:01:09&nbsp;1999)&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;JAVA3D学习系列(11)---外部复杂形体的调用&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;(Wavefront的OBJ,Lightwave的LWS和LWO,WRL,DWG,3DS)&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;汕头大学机电系&nbsp;&nbsp;&nbsp;&nbsp;张杰(<A HREF="mailto:jzhang@mailserv.stu.edu.cn)">jzhang@mailserv.stu.edu.cn)</A>&nbsp;<BR>&nbsp;<BR>****************VRML2.0交互式三维图形编程****************&nbsp;<BR>JAVA3D学习系列中的例题将有非常多的书中的VRML程序与之相比较,&nbsp;<BR>欢迎购买VRML2.0新书。&nbsp;<BR>特殊购书方式:&nbsp;<BR>1。作者售书&nbsp;<BR>1。网上订购(email&nbsp;address:&nbsp;<A HREF="mailto:jzhang@mailserv.stu.edu.cn)">jzhang@mailserv.stu.edu.cn)</A>&nbsp;<BR>2。可以先获书,后汇款(不满意可退书),&nbsp;<BR>&nbsp;&nbsp;&nbsp;只需将通信地址及邮编告知作者,即可在最短的时间内得到书。&nbsp;<BR>3。书价为25元/本,免收邮购费用。&nbsp;<BR>4。书为16开本,正文161页。&nbsp;<BR>5.&nbsp;购书可获盖有出版社财务章的收据。&nbsp;<BR>6.&nbsp;如果需要书中所有的源程序,我可以email一个打包程序&nbsp;<BR>******************VRML2.0交互式三维图形编程*************&nbsp;<BR>&nbsp;<BR>&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;我们可以利用前面介绍的方法生成我们所需要的基本形体,&nbsp;<BR>生成点、线、平面。但有的时候,我们需要用到其它格式的三&nbsp;<BR>维形体,如VRML2.0格式的图形文件,AUTOCAD绘出的DWG格式的&nbsp;<BR>三维形体,3DS&nbsp;MAX绘制出的复杂形体。对于这些形体,我们可&nbsp;<BR>以非常方便地将其用到JAVA3D程序中去。下面我们介绍一些图形&nbsp;<BR>格式在JAVA3D中的应用方法。&nbsp;<BR>&nbsp;<BR>一.&nbsp;Wavefront的OBJ格式的图形文件的调用&nbsp;<BR>&nbsp;<BR>1.&nbsp;OBJ格式图形的简单调用&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;JAVA3D编译环境所带的UTILITY有两个LOADER,一个可用来&nbsp;<BR>调用Wavefront软件的OBJ格式的三维图形格式文件,一个可用来&nbsp;<BR>调用Lightwave软件的LWS及LWO格式的三维图形格式文件。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;假设我们有一个OBJ格式的文件(JAVA3D附带有两个OBJ,文&nbsp;<BR>件名分别为galleon.obj和p51_mustang.obj,以及调用它们的一&nbsp;<BR>个程序ObjLoad.java)。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;我们编写的第一个程序Obj1.java介绍了OBJ图形的调用方法。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;程序的便宜方法:&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;javac&nbsp;Obj1.java&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;程序的运行方法(假设图形在同一目录):&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;java&nbsp;Obj1&nbsp;galleon.obj&nbsp;<BR>&nbsp;<BR>//Obj1.java&nbsp;<BR>&nbsp;<BR>import&nbsp;com.sun.j3d.loaders.objectfile.ObjectFile;&nbsp;<BR>import&nbsp;com.sun.j3d.loaders.ParsingErrorException;&nbsp;<BR>import&nbsp;com.sun.j3d.loaders.IncorrectFormatException;&nbsp;<BR>import&nbsp;com.sun.j3d.loaders.Scene;&nbsp;<BR>import&nbsp;java.io.*;&nbsp;<BR>import&nbsp;java.applet.Applet;&nbsp;<BR>import&nbsp;java.awt.BorderLayout;&nbsp;<BR>import&nbsp;com.sun.j3d.utils.applet.MainFrame;&nbsp;<BR>import&nbsp;com.sun.j3d.utils.universe.*;&nbsp;<BR>import&nbsp;javax.media.j3d.*;&nbsp;<BR>import&nbsp;javax.vecmath.*;&nbsp;<BR>&nbsp;<BR>public&nbsp;class&nbsp;Obj1&nbsp;extends&nbsp;Applet&nbsp;{&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;String&nbsp;filename&nbsp;=&nbsp;null;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;BranchGroup&nbsp;createSceneGraph(String&nbsp;args[])&nbsp;&nbsp;{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BranchGroup&nbsp;objRoot&nbsp;=&nbsp;new&nbsp;BranchGroup();&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Color3f&nbsp;light1Color&nbsp;=&nbsp;new&nbsp;Color3f(1.0f,&nbsp;1.0f,&nbsp;0.9f);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Vector3f&nbsp;light1Direction&nbsp;&nbsp;=&nbsp;new&nbsp;Vector3f(4.0f,&nbsp;-7.0f,&nbsp;-12.0f);&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BoundingSphere&nbsp;bounds&nbsp;=&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;BoundingSphere(ne罚

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?