📄 00000005.htm
字号:
如果将形体摆放在坐标原点,也可以不给出一个TransformGroup,如下面 <BR>的SimpleCone1程序运行起来和SimpleCone结果完全一样,它没有一个 <BR>TransformGroup对象: <BR> <BR>//SimpleCone1.java <BR>import java.applet.Applet; <BR>import java.awt.BorderLayout; <BR>import com.sun.j3d.utils.applet.MainFrame; <BR>import com.sun.j3d.utils.geometry.Cone; <BR>import com.sun.j3d.utils.universe.*; <BR>import javax.media.j3d.*; <BR>import javax.vecmath.*; <BR> <BR>public class SimpleCone1 extends Applet{ <BR> <BR> public BranchGroup createSceneGraph() { <BR> BranchGroup objRoot = new BranchGroup(); <BR> <BR> Appearance app = new Appearance(); <BR> Material material = new Material(); <BR> material.setEmissiveColor(new Color3f(1.0f,0.0f,0.0f)); <BR> app.setMaterial(material); <BR> Cone cone=new Cone(.5f,1.0f,1,app); <BR> objRoot.addChild(cone); <BR> <BR> objRoot.compile(); <BR> return objRoot; <BR> } <BR> <BR> public SimpleCone1() { <BR> setLayout(new BorderLayout()); <BR> Canvas3D c = new Canvas3D(null); <BR> add("Center", c); <BR> BranchGroup scene = createSceneGraph(); <BR> SimpleUniverse u = new SimpleUniverse(c); <BR> u.getViewingPlatform().setNominalViewingTransform(); <BR> u.addBranchGraph(scene); <BR> } <BR> <BR> public static void main(String[] args) { <BR> new MainFrame(new SimpleCone1(), 256, 256); <BR> } <BR>} <BR>//end of SimpleCone1.java <BR> <BR> JAVA3D有三种运行方式,一种是Immediate Mode,一种是 <BR>Retained Mode,一种是Compiled-Retained Mode。 <BR> SimpleCone程序中的 <BR> objRoot.compile(); <BR>表示程序为Compiled-Retained Mode,在这种模式下,JAVA3D对程序 <BR>进行了优化,程序的运行运行速度最快。不过在一些场合,如形体在 <BR>程序运行过程中才生成,则不能Compile形体,这说明优化是有条件的。 <BR> 注意,JAVA3D程序没有“开始渲染”这一步骤,当一个View被有 <BR>效地放入一个Virtual Universe,JAVA3D运行环境就开始不停地渲染 <BR>JAVA3D场景图中的三维形体,从而使屏幕上显示出三维图形。 <BR> <BR>5. SimpleCone的构造函数 <BR> SimpleCone的构造函数的作用为 <BR> 首先设置一个BorderLayout。 <BR> 生成一个名为c的Canvas--Canvas3D继承了JDK1.2中的Canvas类, <BR> 从而构造了一个图形环境。 <BR> 将c放入BorderLayout的中心位置。 <BR> 生成一个场景图分支scene,里面定义了形体及其材质(红色)。 <BR> 借用JAVA3D的一个Utility,生成了场景图的Virtual Universe及 <BR> Locale、Viewer,和VRML程序有些不同,在缺省情况下, <BR> JAVA3D的观察点为位于(0 , 0 , 2.41),而VRML的观察点 <BR> 位于(0 , 0 , 10),因而形体在VRML中看起来比较小, <BR> 而在JAVA3D中看起来比较大。我们利用这个Utility生成的 <BR> 这个u使我们不必考虑生成场景图中的观测分支,不过它也 <BR> 有缺点,即我们不能在Virtual Universe中拥有多个View, <BR> 因而也就不能从一个View跳到另一个View。 <BR> <BR>6. 用于生成application应用程序的main方法 <BR> 为了使我们的程序既可以为applet程序,又可以为application <BR>程序,我们可以通过编写一个main方法,利用import语句提供的 <BR>MainFrame类,生成一个MainFrame对象,从而使程序变成为 <BR>application程序。MainFrame是JAVA3D为我们提供的一个非常有用 <BR>的Utility。 <BR> <BR>###################### 书 讯 ############################ <BR>书名: VRML2.0交互式三维图形编程 由汕头大学出版社出版 张杰编著 <BR>特殊购书方式: <BR>1。作者售书 <BR>1。网上订购(email address: <A HREF="mailto:jzhang@mailserv.stu.edu.cn)">jzhang@mailserv.stu.edu.cn)</A> <BR>2。可以先获书,后汇款(不满意可退书), <BR> 只需将通信地址及邮编告知作者,即可在最短的时间内得到书。 <BR>3。书价为25元/本,免收邮购费用。 <BR>4。书为16开本,正文161页。 <BR>5. 购书有发票。 <BR>6. 如果需要书中的源程序,我可以email一个打包程序 <BR> (里面含有书中所有的程序)。 <BR>7. 书的简单目录 <BR> <BR>第一章 VRML的基础知识 <BR>第二章 基本形体的生成 <BR>第三章 复杂形体的生成 <BR>第四章 组节点 <BR>第五章 路由(ROUTE)的应用、四个捆绑型节点、WorldInfo节点 <BR>第六章 内插器节点 <BR>第七章 传感器节点 <BR>第八章 材质与光源 <BR>第九章 多媒体效果的生成 <BR>第十章 特殊的组节点Inline、LOD、Switch <BR>第十一章 用PROTO、EXTERNPROTE语句定义新的节点 <BR>第十二章 JavaScript语言基础 <BR>第十三章 JavaScript语言在VRML程序中的应用(一) <BR>第十四章 JavaScript语言在VRML程序中的应用(二) <BR>第十五章 VRML、JAVA3D、Chromeffects及未来的三维图形技术 <BR>附录A:网络上与VRML有关的站点介绍 <BR>附录B:VRML在主页中的应用方法介绍 <BR>############################################################## <BR> <BR>-- <BR>※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 202.192.158.112] <BR><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -