⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 00000005.htm

📁 水木清华BBS
💻 HTM
📖 第 1 页 / 共 2 页
字号:
如果将形体摆放在坐标原点,也可以不给出一个TransformGroup,如下面&nbsp;<BR>的SimpleCone1程序运行起来和SimpleCone结果完全一样,它没有一个&nbsp;<BR>TransformGroup对象:&nbsp;<BR>&nbsp;<BR>//SimpleCone1.java&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.geometry.Cone;&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;SimpleCone1&nbsp;extends&nbsp;Applet{&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;public&nbsp;BranchGroup&nbsp;createSceneGraph()&nbsp;{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;BranchGroup&nbsp;objRoot&nbsp;=&nbsp;new&nbsp;BranchGroup();&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;Appearance&nbsp;app&nbsp;=&nbsp;new&nbsp;Appearance();&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;Material&nbsp;material&nbsp;=&nbsp;new&nbsp;Material();&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;material.setEmissiveColor(new&nbsp;Color3f(1.0f,0.0f,0.0f));&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;app.setMaterial(material);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;Cone&nbsp;cone=new&nbsp;Cone(.5f,1.0f,1,app);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;objRoot.addChild(cone);&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;objRoot.compile();&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;objRoot;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;SimpleCone1()&nbsp;{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setLayout(new&nbsp;BorderLayout());&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Canvas3D&nbsp;c&nbsp;=&nbsp;new&nbsp;Canvas3D(null);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add(&quot;Center&quot;,&nbsp;c);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BranchGroup&nbsp;scene&nbsp;=&nbsp;createSceneGraph();&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SimpleUniverse&nbsp;u&nbsp;=&nbsp;new&nbsp;SimpleUniverse(c);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;u.getViewingPlatform().setNominalViewingTransform();&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;u.addBranchGraph(scene);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;void&nbsp;main(String[]&nbsp;args)&nbsp;{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;MainFrame(new&nbsp;SimpleCone1(),&nbsp;256,&nbsp;256);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<BR>}&nbsp;<BR>//end&nbsp;of&nbsp;SimpleCone1.java&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;JAVA3D有三种运行方式,一种是Immediate&nbsp;Mode,一种是&nbsp;<BR>Retained&nbsp;Mode,一种是Compiled-Retained&nbsp;Mode。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;SimpleCone程序中的&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;objRoot.compile();&nbsp;<BR>表示程序为Compiled-Retained&nbsp;Mode,在这种模式下,JAVA3D对程序&nbsp;<BR>进行了优化,程序的运行运行速度最快。不过在一些场合,如形体在&nbsp;<BR>程序运行过程中才生成,则不能Compile形体,这说明优化是有条件的。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;注意,JAVA3D程序没有“开始渲染”这一步骤,当一个View被有&nbsp;<BR>效地放入一个Virtual&nbsp;Universe,JAVA3D运行环境就开始不停地渲染&nbsp;<BR>JAVA3D场景图中的三维形体,从而使屏幕上显示出三维图形。&nbsp;<BR>&nbsp;<BR>5.&nbsp;SimpleCone的构造函数&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;SimpleCone的构造函数的作用为&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;首先设置一个BorderLayout。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;生成一个名为c的Canvas--Canvas3D继承了JDK1.2中的Canvas类,&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;从而构造了一个图形环境。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;将c放入BorderLayout的中心位置。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;生成一个场景图分支scene,里面定义了形体及其材质(红色)。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;借用JAVA3D的一个Utility,生成了场景图的Virtual&nbsp;Universe及&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Locale、Viewer,和VRML程序有些不同,在缺省情况下,&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JAVA3D的观察点为位于(0&nbsp;,&nbsp;0&nbsp;,&nbsp;2.41),而VRML的观察点&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;位于(0&nbsp;,&nbsp;0&nbsp;,&nbsp;10),因而形体在VRML中看起来比较小,&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;而在JAVA3D中看起来比较大。我们利用这个Utility生成的&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这个u使我们不必考虑生成场景图中的观测分支,不过它也&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;有缺点,即我们不能在Virtual&nbsp;Universe中拥有多个View,&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;因而也就不能从一个View跳到另一个View。&nbsp;<BR>&nbsp;<BR>6.&nbsp;用于生成application应用程序的main方法&nbsp;<BR>&nbsp;&nbsp;&nbsp;为了使我们的程序既可以为applet程序,又可以为application&nbsp;<BR>程序,我们可以通过编写一个main方法,利用import语句提供的&nbsp;<BR>MainFrame类,生成一个MainFrame对象,从而使程序变成为&nbsp;<BR>application程序。MainFrame是JAVA3D为我们提供的一个非常有用&nbsp;<BR>的Utility。&nbsp;<BR>&nbsp;<BR>######################&nbsp;&nbsp;书&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;讯&nbsp;############################&nbsp;<BR>书名:&nbsp;VRML2.0交互式三维图形编程&nbsp;&nbsp;由汕头大学出版社出版&nbsp;&nbsp;张杰编著&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>&nbsp;&nbsp;(里面含有书中所有的程序)。&nbsp;<BR>7.&nbsp;书的简单目录&nbsp;<BR>&nbsp;<BR>第一章&nbsp;&nbsp;VRML的基础知识&nbsp;<BR>第二章&nbsp;&nbsp;基本形体的生成&nbsp;<BR>第三章&nbsp;&nbsp;复杂形体的生成&nbsp;<BR>第四章&nbsp;&nbsp;组节点&nbsp;<BR>第五章&nbsp;&nbsp;路由(ROUTE)的应用、四个捆绑型节点、WorldInfo节点&nbsp;<BR>第六章&nbsp;&nbsp;内插器节点&nbsp;<BR>第七章&nbsp;&nbsp;传感器节点&nbsp;<BR>第八章&nbsp;&nbsp;材质与光源&nbsp;<BR>第九章&nbsp;&nbsp;多媒体效果的生成&nbsp;<BR>第十章&nbsp;&nbsp;特殊的组节点Inline、LOD、Switch&nbsp;<BR>第十一章&nbsp;&nbsp;用PROTO、EXTERNPROTE语句定义新的节点&nbsp;<BR>第十二章&nbsp;&nbsp;JavaScript语言基础&nbsp;<BR>第十三章&nbsp;&nbsp;JavaScript语言在VRML程序中的应用(一)&nbsp;<BR>第十四章&nbsp;&nbsp;JavaScript语言在VRML程序中的应用(二)&nbsp;<BR>第十五章&nbsp;&nbsp;VRML、JAVA3D、Chromeffects及未来的三维图形技术&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>附录A:网络上与VRML有关的站点介绍&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>附录B:VRML在主页中的应用方法介绍&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>##############################################################&nbsp;<BR>&nbsp;<BR>--&nbsp;<BR>※&nbsp;来源:·BBS&nbsp;水木清华站&nbsp;bbs.net.tsinghua.edu.cn·[FROM:&nbsp;202.192.158.112]&nbsp;<BR><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER></BODY></HTML>

⌨️ 快捷键说明

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