00000013.htm

来自「水木清华BBS」· HTM 代码 · 共 356 行 · 第 1/2 页

HTM
356
字号
&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(new&nbsp;Point3d(0.0,0.0,0.0),&nbsp;100.0);&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rotator.setSchedulingBounds(bounds);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;obj.addChild(rotator);&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;objRoot.addChild(objScale);&nbsp;<BR>&nbsp;<BR>&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;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;DirectionalLight&nbsp;light1&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;new&nbsp;DirectionalLight(light1Color,&nbsp;light1Direction);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;light1.setInfluencingBounds(bounds);&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;objRoot.addChild(light1);&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Appearance&nbsp;app_red&nbsp;=&nbsp;new&nbsp;Appearance();&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Material&nbsp;material1&nbsp;=&nbsp;new&nbsp;Material();&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;material1.setDiffuseColor(new&nbsp;Color3f(1.0f,0.0f,0.0f));&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;app_red.setMaterial(material1);&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Appearance&nbsp;app_yellow&nbsp;=&nbsp;new&nbsp;Appearance();&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Material&nbsp;material2&nbsp;=&nbsp;new&nbsp;Material();&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;material2.setDiffuseColor(new&nbsp;Color3f(1.0f,1.0f,0.0f));&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;app_yellow.setMaterial(material2);&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Appearance&nbsp;app_blue&nbsp;=&nbsp;new&nbsp;Appearance();&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Material&nbsp;material3&nbsp;=&nbsp;new&nbsp;Material();&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;material3.setDiffuseColor(new&nbsp;Color3f(0.0f,0.0f,1.0f));&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;app_blue.setMaterial(material3);&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Appearance&nbsp;app_cyan&nbsp;=&nbsp;new&nbsp;Appearance();&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Material&nbsp;material4&nbsp;=&nbsp;new&nbsp;Material();&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;material4.setDiffuseColor(new&nbsp;Color3f(0.0f,1.0f,1.0f));&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;app_cyan.setMaterial(material4);&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Appearance&nbsp;app_white&nbsp;=&nbsp;new&nbsp;Appearance();&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Material&nbsp;material5&nbsp;=&nbsp;new&nbsp;Material();&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;material5.setDiffuseColor(new&nbsp;Color3f(1.0f,1.0f,1.0f));&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;app_white.setMaterial(material5);&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cone&nbsp;&nbsp;&nbsp;c&nbsp;&nbsp;&nbsp;=&nbsp;new&nbsp;Cone(1.0f,2.0f,1,app_red);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Primitive&nbsp;s_1&nbsp;=&nbsp;(Primitive)&nbsp;new&nbsp;Sphere(1.0f,app_yellow);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Primitive&nbsp;s_2&nbsp;=&nbsp;(Primitive)&nbsp;new&nbsp;Sphere(.2f&nbsp;,app_blue);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Primitive&nbsp;s_2b&nbsp;=&nbsp;(Primitive)&nbsp;new&nbsp;Sphere(.2f&nbsp;,app_blue);&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Primitive&nbsp;s_3&nbsp;=&nbsp;(Primitive)&nbsp;new&nbsp;Sphere(1.0f,app_cyan);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Primitive&nbsp;s_3b&nbsp;=&nbsp;(Primitive)&nbsp;new&nbsp;Sphere(1.0f,app_cyan);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Primitive&nbsp;s_4&nbsp;=&nbsp;(Primitive)&nbsp;new&nbsp;Sphere(1.0f,app_red);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Primitive&nbsp;s_5&nbsp;=&nbsp;(Primitive)&nbsp;new&nbsp;Sphere(1.0f,app_white);&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Transform3D&nbsp;t1&nbsp;=&nbsp;new&nbsp;Transform3D();&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t1.setScale(new&nbsp;Vector3d(1,1.2,1));&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TransformGroup&nbsp;objTrans1&nbsp;=&nbsp;new&nbsp;TransformGroup(t1);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;objTrans1.addChild(s_1);&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Transform3D&nbsp;t2&nbsp;=&nbsp;new&nbsp;Transform3D();&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t2.setScale(new&nbsp;Vector3d(1,1,2));&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t2.setTranslation(new&nbsp;Vector3f(0.5f,&nbsp;0.4f,&nbsp;0.6f));&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TransformGroup&nbsp;objTrans2&nbsp;=&nbsp;new&nbsp;TransformGroup(t2);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;objTrans2.addChild(s_2);&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Transform3D&nbsp;t3&nbsp;=&nbsp;new&nbsp;Transform3D();&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t3.setScale(new&nbsp;Vector3d(1,1,2));&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t3.setTranslation(new&nbsp;Vector3f(-0.5f,&nbsp;0.4f,&nbsp;0.6f));&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TransformGroup&nbsp;objTrans3&nbsp;=&nbsp;new&nbsp;TransformGroup(t3);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;objTrans3.addChild(s_2b);&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Transform3D&nbsp;t4&nbsp;=&nbsp;new&nbsp;Transform3D();&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t4.setScale(new&nbsp;Vector3d(1.1,0.4,1.1));&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t4.setTranslation(new&nbsp;Vector3f(0.0f,&nbsp;1.0f,&nbsp;0.0f));&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TransformGroup&nbsp;objTrans4&nbsp;=&nbsp;new&nbsp;TransformGroup(t4);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;objTrans4.addChild(c);&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Transform3D&nbsp;t5&nbsp;=&nbsp;new&nbsp;Transform3D();&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t5.setScale(new&nbsp;Vector3d(0.2,&nbsp;0.4,&nbsp;0.2));&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t5.setTranslation(new&nbsp;Vector3f(1.0f,&nbsp;0.0f,&nbsp;0.0f));&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TransformGroup&nbsp;objTrans5&nbsp;=&nbsp;new&nbsp;TransformGroup(t5);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;objTrans5.addChild(s_3);&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Transform3D&nbsp;t6&nbsp;=&nbsp;new&nbsp;Transform3D();&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t6.setScale(new&nbsp;Vector3d(0.2,&nbsp;0.4,&nbsp;0.2));&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t6.setTranslation(new&nbsp;Vector3f(-1.0f,&nbsp;0.0f,&nbsp;0.0f));&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TransformGroup&nbsp;objTrans6&nbsp;=&nbsp;new&nbsp;TransformGroup(t6);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;objTrans6.addChild(s_3b);&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Transform3D&nbsp;t7&nbsp;=&nbsp;new&nbsp;Transform3D();&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t7.setScale(new&nbsp;Vector3d(0.2,&nbsp;0.4,&nbsp;0.2));&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t7.setTranslation(new&nbsp;Vector3f(0.0f,&nbsp;0.0f,&nbsp;1.0f));&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TransformGroup&nbsp;objTrans7&nbsp;=&nbsp;new&nbsp;TransformGroup(t7);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;objTrans7.addChild(s_4);&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Transform3D&nbsp;t8&nbsp;=&nbsp;new&nbsp;Transform3D();&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t8.setScale(new&nbsp;Vector3d(0.4,&nbsp;0.1,&nbsp;0.3));&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t8.setTranslation(new&nbsp;Vector3f(0.0f,&nbsp;-0.5f,&nbsp;0.9f));&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TransformGroup&nbsp;objTrans8&nbsp;=&nbsp;new&nbsp;TransformGroup(t8);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;objTrans8.addChild(s_5);&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Color3f&nbsp;bgColor&nbsp;=&nbsp;new&nbsp;Color3f(1.0f,&nbsp;1.0f,&nbsp;1.0f);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Background&nbsp;bg&nbsp;=&nbsp;new&nbsp;Background(bgColor);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bg.setApplicationBounds(bounds);&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;objRoot.addChild(bg);&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;obj.addChild(objTrans1);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;obj.addChild(objTrans2);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;obj.addChild(objTrans3);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;obj.addChild(objTrans4);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;obj.addChild(objTrans5);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;obj.addChild(objTrans6);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;obj.addChild(objTrans7);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;obj.addChild(objTrans8);&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&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;Ex4_03()&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;Ex4_03(),&nbsp;640,&nbsp;480);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<BR>}&nbsp;<BR>//end&nbsp;of&nbsp;Ex4_03.java&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;我们来仔细研究JAVA3D所提供的形体几何变换功能。&nbsp;<BR>前面我们主要介绍形体生成的方法,其中,编写自己的形体&nbsp;<BR>用到的是Shape3D对象,VRML97与之对应的是Shape节点。&nbsp;<BR>同样,JAVA3D对应于VRML97的Transform节点的对象是Transform3D。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;VRML97编程中,形体的平移可以通过Transform节点的&nbsp;<BR>translation字段来设置;JAVA3D编程时,形体的平移可以通过&nbsp;<BR>Transform3D的setTranslation方法完成。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;VRML97编程中,形体的旋转可以通过Transform节点的&nbsp;<BR>rotation字段来设置;JAVA3D编程时,形体的旋转可以通过&nbsp;<BR>Transform3D的setRotation方法完成。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;VRML97编程中,形体的比例变化可以通过Transform节点的&nbsp;<BR>scale字段来设置;JAVA3D编程时,形体的比例变化可以通过&nbsp;<BR>Transform3D的setScale方法完成,其中,当扩弧里只有一个双&nbsp;<BR>精度数时,setScale对所有的方向均采用同一个比例,而当里面&nbsp;<BR>有三个双精度数时,setScale对不同的方向可以采用不同的比例,&nbsp;<BR>双精度数后面不加符号,而单精度浮点数后面要加一个f。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;我们来看一下程序的主要内容:&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;程序一开始就定义了一个BranchGroup,后面所有的生成的内容&nbsp;<BR>如形体、形体的变换、背景、灯光都放入其中。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;为了使我们生成的图形有合适的大小,我们定义了一个&nbsp;<BR>TransformGroup对象objScale,通过一个t3d使其按比例缩小,这&nbsp;<BR>相当于我们将视野往后移动。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;为了使我们生成的小丑能够旋转,我们定义一个TransformGroup&nbsp;<BR>类型的obj,这相当于定义了一个小丑所在的局部坐标系,设定此&nbsp;<BR>坐标系可以旋转,选转方式由一个Transform3D类型的temp来确定,&nbsp;<BR>定义obj为objScale的一个子节点。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;通过定义rotationAlpha、rotator地定义使得obj能够产生旋转。&nbsp;<BR>它们的作用类似于VRML的时间传感器及方向内插器。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;接下来我们在空间中定义了一个定向光、各种材质、形体,并&nbsp;<BR>将灯光、具有一定材质的形体放入objRoot、obj之中,最后我们&nbsp;<BR>还定义了一个背景光。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;通过这个程序的编写,我们掌握了JAVA3D生成复杂形体的最基本&nbsp;<BR>概念,即如何进行形体的几何坐标变换。掌握了形体几何坐标变换&nbsp;<BR>方法,我们就具有了编写JAVA3D复杂应用程序的能力。&nbsp;<BR>&nbsp;<BR>--&nbsp;<BR>※&nbsp;来源:·BBS&nbsp;水木清华站&nbsp;bbs.net.tsinghua.edu.cn·[FROM:&nbsp;202.192.158.172]&nbsp;<BR><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER></BODY></HTML>

⌨️ 快捷键说明

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