




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、VrmlPad工作环境的配置与使用(一)作者:明明 阅读:483次 时间:2005-9-17 来源:虚拟天堂VrmlPad是ParallelGraphics公司开发的一款专业的 VRML编辑工具,它的2.1版具有:智能自动完成;动态错误检测;语法强调显示;场景树的可视化显示;多文档同时编辑;资源文件管理;自动化操作与自定义脚本操作;整合脚本调试器;预览节点缩略图;发布;等一系列功能(请参看附文浏览 VrmlPad的具体特性)。材质材质编辑器编辑器下面开始给大家讲讲VrmlPad的配置和使用。三种视图选项三种视图选项第一、工具栏:(Colla pse All)D D F F EIEI0 0 S
2、S刚B B产 & & 3 3 * %,章童9 9慝直S S S S S S: % %书签工书签工a上图中标出了几个“极端”重要的按钮(命令),他们能把我们的工作效率很 好提高起来哦,但是这些东西需要大家在自己的工作中慢慢体会,在此不作详 细介绍。工具栏的本意便是要我们能够快捷的使用一些命令,因此,善待工具 栏吧!第二、其他几个很很很有用的命令1. Edit | Fold | Expand All当你打开一个大场景时,可能你会发现,整个代码有几千甚至几万行, 你若需要查找修改其中某些对象时,你很难找到他们,或在他们之间跳转,这 时,你需要先用这个命令将所有的节点折叠起来,先看看其总体结构。当然,
3、可能还是会有很长,没有关系,后面我们还会介绍更多的解决办法。2.File | Downioad这个功能可以说真的是 VrmlPad最体贴的一个设计了,初学者手中可 能素材太少,难以进阶,或创作者难以触发艺术的灵感,这时可能想去看看别 人的作品,看看别人是怎么样实现“炫”的效果的。这个命令能帮你方便快捷 下载网络上的资源。当然,请尽量不要抄袭别人的创意成果。3. View | Window | Split把整个工作区域分成两个部分,若要同时对两个地方进行处理,这个命令将帮助我们实现最便捷的跳转(根本不用“跳”)。3. File | Save AsGzip格式的高比率文件压缩,一般可达到1/61/
4、10 。4.Tools | To FaceSet 和 Tools | ScaleFaceSets如果在安装VrmlPad时安装默认的宏和插件,在Tools菜单中应该有这项。前面的是将基本几何体Box, Cone, Cylinder转换为面片模型以加快渲染速 度。后面的命令则可以将面中坐标值进行整体的放缩,免去手工计算的烦恼。第三、选项配置现今大部分软件都可以自定义软件工作环境,Vrml Pad也不例外哦。菜单Tools I Options可以打开选项对话框,主要讲一下其中几项的配置。(1)Ge neral:A. System: Associate VrmIPad with VRML files
5、 设置 VrmlPad关联到VRML文件,即VRML文件的打开方式,勾选后可设置关联的关系。In elude Vrml Pad in the start menu把VrmlPad快捷方式添加到启动菜单中。Include VrmlPad on the desktop把 VrmlPad快捷方式添加到桌面上。VRM与JAVA在网络课件中交互运用分析作者:不详 阅读:276次 时间:2005-10-27 来源:86vr虚拟现实建模语言 (Virtual Reality Modeling Language 即VRML )和Java语言都是可执行的代码”技术,通过网络传输的只是一个很小的描述文件(指令性数
6、据集),客户端通过本地的VRML浏览器、JAVA虚拟机交互地访问这些文件并解释执行。将Java与VRML结合,能够很好地实现网络多媒体课件技术:使用VRML进行场景构造,内嵌用Java编写的程序设计实现对象的编程行为。这使VRML在网上创建充满真实感的三维虚拟世界,为用户提供一种自然的、身临其境的体验方式,包括交互性、动态效果、连续性及参与感,而这将是未来网络教学的主要形式之一。11、 VRML简单交互VRML简单交互,即VRML空间中各节点间数据交互。VRML有统一的数据传输接口和完善的属性集合和事件集合,可接收传感器节点发送过来的数值,并根据所对应的接口属性域设置提取数据、 改变自身的属性
7、值、触发事件进而改变自己在空间中的位置、外型和显示效果,还可以将处理后的数据送到输出域,传递给其他模型节点。各节点通过接口域的相互路由(route to)实现数据传输,路由的映射关系自由,但接口域的数据规格必须严格一致。2、VRML扩展交互VRML本身交互机制是无法构建一个大型多媒体课件的,因为VRML本身不能完成普通程序设计中的转折、分支、循环等基本特征。因此实际系统设计中,可利用Java语言提供的强大网络编程能力,编写与远程系统通信和共享能力处理等功能的应用程序。Java对VRML的所有支持都通过附加的封装类实现。通过这些类,Java程序就能够访问VRML场景、接受和发送事件、从页面上得到
8、 VRML对象等,实现对 VRML场景的完全控制。2根据访问方式的不同,又可分为:脚本编程接口SAI(Script Authoring Interface)交互与外部编程接口EAI(EAI External Authori ng In terface)交互。2.1脚本编程接口 SAI交互SAI交互即使用事件机制和路由利用Script 节点实现 VRML 与 Java(或 JavaScript)的VRML场景以实现动画或交互。3,通过它可以定义和改变场景中JavaScript程序或者是链接的交互。首先,通过eventin将事件传至Script节点中的脚本 其次,在Script节点中的脚本中调用相
9、应的Java类(或JavaScript)进行处理;最后,通过eventOut将结果送回到VRML的Script节点是一种控制传感器和内插器的节点对象的外观和行为。Script节点的URL域可以包含一段 一个JavaClass。SCRIPT节点可放置在场景的任何地方,用DEF命名它,从而完成事 件的删除成传递。4 SCRIPT节点的字段是由用户延伸的 倒达这些字段的字段会自动 移到和SCRIPT节点相关程序中。另外SCRIPT节点也能够通过编写合适程序脚本 ,动态生成(改变)三维造型并绑定合适的感应器和内插器。52.1. IJava通过Script类(vrml. node 包)与Seri pt结
10、点建立联系,控制VRML结点首先,定义Script节点中的各域域值,设置路由(Route )使VRML中的其它节点与Script节点联系起来。当与 Script节点有联系的节点发生事件时,事件通过路由传给Script节点的eventin域,Script节点则通过url域中指定的地址找到java 类。然后,Java类开始工作,最先执行的是initialize ()方法:在initialize()方法中必须获得Script节点中eventIn或field域的值,或者把java中的值返回给Script 中的 eventOut 域。Script 类提供的方法有:getField (fieldName
11、) ; getEventin (eventInName) ; getEventOut (eventOutName ); 作为参数的 fieldName、eventlnName、eventOutName 要与Script节点中定义的名称相符合,对应的 Field类的子类(vrml.filed包)与Script节点中定义的各种 Type类型一致。它提供 getValue ()和setValue()方法。再贝 y,通过 Scri pt 类提供的 P rocessEve nt ( Eve nt pO )或 pro cessEve nts ( int pO, Event p1 )方法来捕获 Script
12、节点传递的事件。processEvent和processEvents 方法是所有外部事件公共的输入点。Java程序通过替代这两个方法对事件做出相应的处理。Vrml包中Eve nt类的getName ()方法返回事件名称(该名称与Script节点中发生该事件的eve ntInN ame相同),确定发生的事件,从而做出相应的处理;Eve nt类的getValue ()方法则返回一个ConstField类的实例(它是Script节点中发生该事件的 eventin域),ConstField类是Field类的子类,它没有 setValue ()方法,因而只能取出Script节点中eventin域的值,而
13、不能修改。最后,所有事件处理完后,程序就调用Script类中的eventsProcessed()方法,在这儿可以加入用户想要实现的动画、交互等各种效果。Script类中的shutdown ()方法实现离开VRML文件的方式。通过Script节点,能java程序处理过的数据返回给VRML文件。通过初始化时 getEventOut ()得到的变量的 setValue ()方法将值传递给 Script节点的eventOut域,再通过路由传递给 VRML中的各类节点,完成整个通信过程。2.1.2 Java通过Script节点和Node类(vrml.node 包)直接修改 VRML节点通过Script节
14、点和路由,同时又必须在Script节点的eventOut域设置控制点,java程序才能改变VRML文件中节点值。当有大量数据需要传送时,这种给每个数据设置一个 eventOut域加一个路由的方法显然是相当麻烦的。因此java,提出直接修改节点的方法。Java直接修改场景中的节点,仍然要用到Script节点。首先在定义 Script节点时,将eventOut域改为field域,fieldType定义为SFNode,具体格式如下:“fieldSFNode field name USE nodeName 。“ nodeName 为要修改的节点名称(在VRML中由DEF语句命名),产生一个指向名为 n
15、odeName节点的指针。执行初始化时通过getField ()方法得到相应的 SFNode类的一个实例,通过 getValue ()方法得到该类的值,这里它的值恰好是名称为nodeName的Node类的实例,然后通过Node类提供的方法直接修改节点。getExposedField(String pO)、getEventin( String p0 )方法,分别得到节点的field和eventin域,并把结果作为 Field类;再通过各Field类的子类提供的方法读取和设置值,将设置结果直接返回节点,不用再设置路由,从而达到了直接修改节点的目的。Node类还提供了 getEventOut ( S
16、tring pO)方法,用它可以得到节点的eventOut域,与前两个方法不同,它得到的结果是一个不能修改的Field类,即Field类的子类ConstField 类。使用改进后的方法,可以有效的缩减代码长度,节省VRML文件的计算时间,提高VRML场景的生成速度。2.1.3Java通过Script节点和Browser类(vrml包)直接创建 VRML场景设置Group节点的addChindren和removeChindren 的值来可添加和删除具体节点,但还无法操作路由。当有大量不同的并相互关联的节点要通过java在VRML中创建时,工作量是难以想象的。为了满足这一要求,Script类继承B
17、aseNode(vrml包)类,BaseNode 类中定义了两个方法:getBrowser ()和 getType ()。getBrowser ()方 vrml包中,它提供了一系法将会返回BaseNode类所处的浏览器。Browser类存在于列方法来对整个VRML文件进行控制。如:SFString fromEventOut ,(1)、添加和删除路由:addRoute ( SFNode fromNode,SFNode toNode,SFString toEventIn ), deleteRoute ( SFNode fromNode,SFString fromEventOut , SFNode
18、toNode, SFString toEventin )(2)、直接创建 VRML : createVrmlFromString(SFString vrmlSyntax )(把要创建的节点语法以字符串的方式作为参数写入)(3)、在 VRML 中建立相应节点:createVrmIFromURL ( MFString url,SFNode node, SFStr ing eve nt)(该方法的提供节点语法的参数是放在url地址所指出的 VRML文件中,浏览器通过 url找到要加入的节点,把它加入到node参数指定的节点中event参数指定的eventin域中)(4)、用指定的节点来替换整个VRM
19、L文件:replaceWorld (MFNodenodes )用url指定的另一个 VRML文件来替换当前的文件:loadURL ( MFStringurl , MFString parameter )。Script类执行initialize ()方法时,得到浏览器实例,然后processEvent(Event e)方法执行时使用上述方法建立、修改VRML场景。通过改进,不仅VRML文件代码长立、度缩减,java程序代码也大大减少,进一步提高了VRML场景的生成速度。2.2外部编程接口(EAI)交互SAI交互VRML离不开Script节点和Script类(vrml.node包)。为了实现通信功
20、能编写的java类都必须继承自Script类。但java不支持多继承,如果用 Applet操控VRML场景,java程序要继承Script类的方法相当复杂。特别是要把VRML文件与Applet集成在同一个HTML页面时,用Script类来实现颇为困难,而且程序代码冗长、可扩展性差。VRML97标准提供的EAI定义了外部环境怎样通过 VRML现存的事件驱动模式来访问VRML内部的节点的一系列方法,实现了 Applet与VRML场景的通信。EAI包含浏览器 脚本接口的全部功能,例如查询浏览器的状态,增加或删除路由,生成新的节点等功能。7Java主要使用 Browser和Node两个类(vrml.e
21、xternal包),以及其它一些如处理 eventIn域和eventOut域的各个属性类(EventIn*、EventOut* )和处理例外的各种*Exception类完成对EAI的描述。Browser 类提供了三个方法: getBrowser ( Applet pApplet )、getBrowser ( Applet pApplet,String frameName ,int index )禾口 getNode ( String name )方法。前两个方法是静态方法,直接在Applet类中使用这两个方法得到 Applet类和VRML所在的浏览器类的实例。getNode ()方法可以直接得
22、到 VRML文件的具体节点(Node类)的实例,HTML等其它媒体用InLine语句嵌入在VRML文件中的各个节点是用 getNode ()方法是无法得到的。这里的Node类与方法一的Node类是完全不同的,它用自己的getEventIn ()和getEve ntOut ()方法来得到 VRML节点的各个域。然后使用返回的Eve nt*的实例的getValue ()和setValue ()方法来控制具体的值。 Eventin*类仅提供了设置值的setValue ()方法;EventOut*类相对复杂,不仅提供了getValue ()方法来获得当前值,还 提供了监听 EventOut域的接口 ?
23、?EventOutObserver ,随时监听 VRML节点中是否有新的EventOut事件发生,一旦有新事件发生,通过替代该接口提供的callback (EventOut value, double timeStamp , Object data )方法响应事件。通过Browser和Node类,可以抛弃Script节点和Script类甚至路由而现实对 VRML文件的各种节点即 Node类的各个实例直接操控。但 getBrowser ()方法的参数必须是Applet的实例,因而该方法只能通过Applet来控制VRML。3.总结:VRML与其它实现三维场景的技术手段(如OpenGL,Cult3D
24、,3DSMAX,Viewpoint)相比,具有语法简单、三维建模功能强大、便于网上发布等优点。但由于VRML本身仅仅是一种标准,不可能满足各行各业的所有需要。所以,高级交互功能的实现必须借助于Java等功能强大的高级语言。这样,可以有效地弥补VRML本身的一些不足(例如逻辑判断、文件操作、键盘输入、精确控制场景等),进而完善与的交互,也可实现复杂的虚拟环境系统网络课件。作者:TGTT阅读:599次 时间:2005-11-18 来源:(已逝)VrmlScript语言继承了 JavaScript的大多数特性,而且使用JavaScript的基本语法,不同之处在于 VrmlScript内建了针对 VR
25、ML而设计的JavaScript对象.在JavaScript中若要访问VRML节点中的某个值,如Y轴坐标,必须要用数组才能实现而在VrmlScript中要实现这个功能,呵呵,那就方便多了,可以将它当作对象的属性,如position.y来调用.如果你看了上面的东西,觉得一头雾水,那我就只能猜测你的JavaScript没过关了,好,没关系,挑一本JavaScript教程去补一补吧.补了之后再来看这个VrmlScript教程,记住,补了之后再来看哟,因为我不打算讲 Vrml的基础东西,这些和JavaScript的是同一回事.在VRML中使用 VrmlScript的基本结构为:Scripteventi
26、n SFBool inputeve ntOut SFBool out puturlvrmlscri pt:fun ctio n inp ut(value)out pu t=value;在这里,eventIn SFFloat input中的input代表的事件输入,也就是触发程序执行的源动力,而SFFloat代表的是这个源动力的数值类型,常见的input可以是时间,布尔值等,而相应的数值类型是SFTime,SFBool等同理,eve ntOut SFBool out put指的是事件输出,也就是你这个程序所要达到的目的往下看,就是程序的内容了 urlvrmlscri pt:function in
27、pu t(value)out pu t=value;其中vrmlscript代表的是你这个程序所使用的语言是vrmlscript,当然,你也可以改成其他的,如javascript等,下面的function input(value)是这个程序的响应函数而output=value;是这个函数的语句,在实际使用中你只需将这个语句改成你自己的语句就行了在这里有一点大家务必要注意,那就是,在VrmlScript中要调用输入值时必须要通过一个与事件输入同名的函数来实现,不允许直接调用如下例:Scripteventin SFTime toucheventOut SFInt32 choicefield SFT
28、ime touchTime 0 定义了一个变量urlvrmlscri pt:function calculate(i nput)/use=touch; /错了,不能直接调用,记住!use=touchTime;通过一个临时量来调用,可以retum(i np ut+1)%3;function touch(t,timestamp)/ touch中的第一个参数 t就代表事件输入.touchTime=t; /将事件输入保存在 touchTime临时变量中.choice=calculate(choice);/事件输出.touch函数中有两个参数,第一个是事件输入,第二个是时戳.无论你给第一个参数取什么名字
29、,它所代表的永远是事件输入.而时戳是系统自己生成的用于来安排事件执行顺序的,可以不用.其实基本结构还可以这样:Scripteventln SFFloat inputeve ntOut SFBool out puturlhtt p:/www.vker. net/myi ni .vs其中myini.vs中保存的就是你的程序代码.这样更有助于代码重用.好,现在举一个实际的例子.#VRML V2.0 utf8Directi on alLight ambie ntinten sity 0.5intensity 0.5DEF Shower Switch choice Sha peapp eara nee
30、App eara nee material Material diffuseColor 1 0 00 1 00 0 1DEF Sensor TouehSensorDEF Computer Scripteve ntl nSFTime toueheve ntOutSFInt32 ehoieeurlvrmlseri pt:functionealeulate(i nput)geometry Sphere Sha peapp eara nee App eara neematerial Material diffuseColorgeometry BoxSha peapp eara nee App eara
31、 neematerial Material diffuseColorgeometry ConewhiehChoiee 0return(i np ut+1)%3;funetion toueh()ehoiee=ealeulate(ehoiee);funetion initialize() /初始化.ehoiee=2;ROUTE Sensor.touchTime TO Computer.touchROUTE Computer.choice TO Shower.whichChoice程序通过sensor.touchTime也就是传感器的触发时间来触发VrmlScript运行,然后通过VrmlScrip
32、t的运行结果来改变 Shower的选择.这个例子有两个讲点,1),TouchSensor,先看一看它的定义:TouchSe nsorexposedField SFBool enabled TRUEeventOut SFVec3f hitNormal_changedeventOut SFVec3f hitPoint_changedeventOut SFVec2f hitTexCoord_changedeventOut SFBool isActiveeventOut SFBool isOvereventOut SFTime touchTime有好多的输出噎,我们可以根据需要调用相应的输出.例如如果
33、我们想知道鼠标在物体上接触的位置,可以用hitPoint_changed,如果我们想知道鼠标是否在物体上,可以用isOver等等.如上例就是用的触发时间 touchTime.2),initialize,这是VRML2.0规定的三个例程之一,还有两个是 shutdown禾口 eventsProcessed;它们有什么用呢?如果大家用过javascript的话就应该知道load和unload吧,而这里的initialize 禾口 load意思差不多,就是指开始时要执行的代码,shutdown和unload差不多,就是指结束时执行的代码.至于eventsProcessed就比较特殊,它在一个或者多个
34、事件输入被处理完后执行,用于集中处理一系列不必考虑次序的事件输入带来的总的变化,这样就可以减少浏览器的工作量,提高浏览器质量.VrmlScript教程系列(二)-实战(2)作者:TGTT阅读:600次 时间:2005-11-18 来源:(已逝)今天给各位分析一个简单的例子这个例子中有三个球体,中间的是开关可以控制两边球体颜色变换.diffuseColor 0.44 0.44 0#VRML V2.0 utf8DEF switcher Transform #定义的是作为开关的一个球体.children DEF t1 TouchSensor Tran sform children Shape app
35、 eara nee App eara nee material Material ambie ntl nten sity0.25diffuseColor 1 0.45 0.4specularColor 0.7 0.4 0.4emissiveColor 0 0 0shi nin ess 0.9transparency 0geometry Sphere radius 0.3translation0 -1 0DEF light3 Transform #其中一个被控制的球体.children Shape app eara nee App eara nee material DEF m1 Materia
36、l ambie ntl nten sity0.14specularColor 0.74 0.76 0.53eventOut SFColor colorOut1emissiveColor 0.18 0.18 0shi niness 0.11transparency 0geometry Sphere radius 0.8translation-3 -1 -3DEF light1 Transform #另一个被控制的球体.children Shape app eara nee App eara nee material DEF m2 Material ambie ntl nten sity0.14d
37、iffuseColor 0.44 0.44 0specularColor 0.74 0.76 0.53emissiveColor 0.18 0.18 0shi niness 0.11transparency 0geometry Sphere radius 0.8tran slation3 -1 -3DEF switch Script #要运行的程序.eventin SFBool boollneventOut SFColor colorOut1eventOut SFColor colorOut3field SFBool onOff FALSEfield SFColor oldColor 0.5
38、0.5 0.5field SFColor lightColor 0.9 0.6 0.4url vrmlscript:fun ctio n boolI n(value,timesta mp)if (value)if (onOff)colorOut1=lightColor;colorOut3=oldColor;else colorOut1=oldColor;colorOut3=lightColor;onO ff=!o nOff;ROUTE t1.isActive TO switch.boolIn#开关被点击的事件触发程序有了输入,开始运行ROUTE switch.colorOut1 TO m1.s
39、et diffuseColorROUTE switch.colorOut3 TO m2.set diffuseColor#程序的输出结果传送给两个球体,让它们改变颜色.看一看脚本的程序:DEF switch Script eventin SFBool boolIn#boolIn是作为输入的布尔值,本例子中是通过中间球体的传感器触发eventOut SFColor colorOut3material Material diffuseColor 1 0 0field SFBool onOffFALSE#这只是用来记录开关运作的临时变量,分辨下一步是开还是关.field SFColor oldCol
40、or0.5 0.5 0.5field SFColor lightColor0.9 0.6 0.4FALSE则改为#TURE,以使下一次实战(3)来源:(已逝)#有两个输出值分别输出给两个不同的球体#定义了两个颜色常量.url vrmlscript:fun ctio n boolI n(value,timesta mp)if (value) #如果输入是真,也就是指如果鼠标点击了开关if (onOff) #如果 onOff 的值等于 TURE.colorOut1=lightColor;colorOut3=oldColor;#输出颜色.else #如果onOff的值不等与 TUREcolorOut
41、1=oldColor;colorOut3=lightColor;#则输出另一种颜色onO ff=!o nOff;#如果onOff的值是TURE,则改为FALSE;如果值是点击产生另一种效果VrmlScript 教程系列(二)- 作者:TGTT阅读:602次 时间:2005-11-181 1 1geometry Box size 50 .150这次准备谈一谈 VrmlScript的直接输出问题,以前的例子都是通过 ROUTE TO来间接控制脚本外的物体.其实可以在VrmlScript中直接控制外部事物,我们还是从例子入手.这是一个模拟物体重力的例子#VRML V2.0 utf8Directio
42、nalLight# 灯光ambie ntinten sity 0.5intensity 0.6direction 0 -0.707 -0.707Transform #地面translation 0 -1.05 0childre n Shape app eara nee App eara neematerial Material diffuseColorDEF myTime TimeSensor loop TRUE #将时间传感器定义成一个对象DEF Sphere Transform #将被控制的球定义为一个对象children DEF Sensor PlaneSensorautoOffset
43、FALSESha peapp eara nee App eara nee material Material diffuseColor 1 0 0field SFNode Object USESp here/引用球体field SFNode Sensor USESensorgeometry SphereDEF myScript Script directOut put TRUE如果要在脚本内控制外部对象,上一句必须有.eventln SFTime time/引用时间传感器field SFTime lastTimefield SFVec3f offset 0urlvrmlscri pt:func
44、tion time(time)if(Sensor.isActiveX#如果鼠标按在了球体上t=offset.add(Se nsor.tra nslatio n_ cha nged);变量t的位置等于鼠标现在的位置if(t.y0)/如果变量offset的高度在地面以上offset.y-=time-lastTime;/offset的高度随时间的变化减小Object.tra nslati on=offset;abs (n): n的绝对值.acos (n): n的反余弦值.asin(n): n的反正弦值.ata n(n): n的反正切值./引用的球体的位置等于 ofset的位置.lastTime=ti
45、me;ROUTE myTime.time TO myScript.time#用时间传感器触发脚本运行我们可以发觉,VrmlScript中所直接控制的并不是外面的物体本身,而是它的引用,而DEF,USE有一个特点就是引用的变化将促使源物体的变化.打个比方,如果你的名字是 VKER,而你的外号是Killer,如果人家骂Killer是个白痴,那你会有什么反应?看来是讲得太详细了,居然没人提问,好,下次讲得要具有跳跃性:).VrmlScript教程系列(二)-实战(4)作者:TGTT阅读:603次 时间:2005-11-18 来源:(已逝)VrmlScript中的数学运算在VrmlScript中,如果
46、要生成较为复杂的地面,丘陵等如果借助数学对象,则可事半功倍.在VrmlScript中主要有以下一些数学对象的方法ceil(n):对n进位取整.sin(n):n的正弦值.cos(n):n的余弦值.translation -4 0-4tan(n):n的正切值.exp(n):自然对数的n次幂.floor(n):对n去尾取整.Iog(n):n的对数值.max(n1,n2):取两者较大的数.min(n 1,n2):取两者较小的数.pow(base,exponent):base的 exponent 方.random():0.0至1.0间的随机数.round(n):接近n的整数.sqrt(n): n的平方根.注意:所有的角度都是用弧度表示的在实际使用这些方法的时候 应该用Math.方法名(n)的方法,如下面这个曲面就是用数学方法生成的.#VRML V2.0 utf8Directio nalLightambie ntl nten sit
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 烟草西藏公司考试题库2025
- 江苏省住房和城乡建设厅直属事业单位招聘考试真题2025
- 城管年度考核个人总结
- 2025技师考试题目及答案
- 2025年人教版高中英语定语从句练习题30题带答案
- 解析卷-人教版八年级物理上册第6章质量与密度-质量专题测试试卷(含答案详解)
- 2025年房地产开发与管理专业就业能力考试试卷及答案
- 2025年土建施工员考试题库及答案
- 安徽水利远程视频监控系统组网方案
- 强化训练苏科版九年级物理上册《简单机械和功》章节测评试题(含答案及解析)
- (正式版)DB42∕T 2305-2024 《高品质住宅技术标准》
- Peru旅游课件教学课件
- 2025年公文写作基础知识竞赛试题库及答案(共60题)
- 2025至2030中国无土栽培市场发展规模与前景趋势研究报告
- GB 2894-2025安全色和安全标志
- 硫酸使用安全培训课件
- 风电场施工主要施工机械设备情况及主要施工机械进场计划
- 2025年中国甲醇产业现状及发展趋势研究报告(齐鲁咨询发布)
- 储能电站主要设备施工方案
- (2025)政府采购评审专家考试真题库(附带答案)
- 2025-2030中国青光眼手术器械行业市场现状供需分析及投资评估规划分析研究报告
评论
0/150
提交评论