VRMLscriptWord文档下载推荐.docx

上传人:b****2 文档编号:438539 上传时间:2023-04-28 格式:DOCX 页数:31 大小:30.88KB
下载 相关 举报
VRMLscriptWord文档下载推荐.docx_第1页
第1页 / 共31页
VRMLscriptWord文档下载推荐.docx_第2页
第2页 / 共31页
VRMLscriptWord文档下载推荐.docx_第3页
第3页 / 共31页
VRMLscriptWord文档下载推荐.docx_第4页
第4页 / 共31页
VRMLscriptWord文档下载推荐.docx_第5页
第5页 / 共31页
VRMLscriptWord文档下载推荐.docx_第6页
第6页 / 共31页
VRMLscriptWord文档下载推荐.docx_第7页
第7页 / 共31页
VRMLscriptWord文档下载推荐.docx_第8页
第8页 / 共31页
VRMLscriptWord文档下载推荐.docx_第9页
第9页 / 共31页
VRMLscriptWord文档下载推荐.docx_第10页
第10页 / 共31页
VRMLscriptWord文档下载推荐.docx_第11页
第11页 / 共31页
VRMLscriptWord文档下载推荐.docx_第12页
第12页 / 共31页
VRMLscriptWord文档下载推荐.docx_第13页
第13页 / 共31页
VRMLscriptWord文档下载推荐.docx_第14页
第14页 / 共31页
VRMLscriptWord文档下载推荐.docx_第15页
第15页 / 共31页
VRMLscriptWord文档下载推荐.docx_第16页
第16页 / 共31页
VRMLscriptWord文档下载推荐.docx_第17页
第17页 / 共31页
VRMLscriptWord文档下载推荐.docx_第18页
第18页 / 共31页
VRMLscriptWord文档下载推荐.docx_第19页
第19页 / 共31页
VRMLscriptWord文档下载推荐.docx_第20页
第20页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

VRMLscriptWord文档下载推荐.docx

《VRMLscriptWord文档下载推荐.docx》由会员分享,可在线阅读,更多相关《VRMLscriptWord文档下载推荐.docx(31页珍藏版)》请在冰点文库上搜索。

VRMLscriptWord文档下载推荐.docx

whileStatement:

while(compoundExpression)statementBlock

returnStatement:

returncompoundExpression

return

breakStatement:

break

continueStatement:

continue

compoundExpression:

expression,compoundExpression

expression

optionalExpression:

compoundExpression

expression:

(compoundExpression)

-expression

!

expression

~expression

leftVariable=expression

leftVariable+=expression

leftVariable-=expression

leftVariable*=expression

leftVariable/=expression

leftVariable%=expression

leftVariable&

=expression

leftVariable|=expression

leftVariable^=expression

leftVariable<

<

leftVariable>

>

++expression

--expression

expression++

expression--

expression?

expression:

expression==expression

expression!

expression<

expression>

expression+expression

expression-expression

expression*expression

expression/expression

expression%expression

expression&

&

expression||expression

expression|expression

expression^expression

string

number

objectMethodCall

objectMemberAccess

functionCall

newconstructor

arrayDereference

variable

functionCall:

identifier(params)

constructor:

objectMethodCall:

expression.identifier(params)

objectMethodAccess:

expression.identifier

params:

params,expression

arrayDereference:

expression[compoundExpression]

leftVariable:

objectMethodAccess

variable:

string:

'

utf8'

number:

0{0-7}+

...ANSICfloatingpointnumber...

0X{0-9}+

0x{0-9}+

TRUE

true

FALSE

false

identifier:

utf8Character{utf8}*

utf8Character:

...anylegalUTF8characterexcept0-9...

utf8:

utf8Character

0-9

1.2对象与变量

数据在VRMLScript中被描述为对象。

对象类型对应于VRML的域。

一个变量包含对象的一个状态,并且可预先定义(在Script节点中)或局部定义。

1.2.1取值,命名

一个VRMLScript变量保存对象的一个状态。

如果一个Script节点的field或eventOut被定义,则与此同名的变量在Script节点中全程可用。

这个变量的类型与field或eventOut的类型一致。

(见数据变换)。

变量名必须以一个字母("

a"

—"

z"

或“A“—”z“),或下划线”_"

开头。

随后的字符可以是任何字母或数字。

变量名是区分大小写的?

变量可通过给新的变量名赋值来创建。

变量的类型总是最后被赋值的类型。

变量在它被初次引入的程序块范围内有效,Script节点中的field或eventOuts变量在整个节点范围内有效。

数字,布尔,字符串类型的文字可在VRMLScript中使用。

数字类型可以是十进制(417),十六进制(0x5C),或八进制(0177)形式。

也可为浮点(1.76)或指数(2.7e-12)形式。

所有的数字字符均为number类型。

布尔类型值为“true”或“false”类型为boolean。

字符串可以是在单引号('

)中的任何顺序的UTF8字符,类型为String。

特殊字符可按下列方式使用

字符

含义

\b

退格

\f

换页

\n

换行

\r

回车

\t

Tab

\'

单引号

\"

双引号

\\

\

举例:

Script{

fieldSFFloataField0

fieldSFVec3faVector000

eventOutSFInt32anEventOut

eventInSFBoolevent

url"

vrmlscript:

functionevent(value,timestamp){

if(aField==1.5){

a=true;

//'

a'

containsaboolean

}

if(a){//thisisNOTthesame'

asabove!

value=5;

//ERROR,

//can'

tassigntofunctionparameter!

aField=anEventOut;

//SFInt32convertedtoSFFloat

b=aField;

b'

containsanumber

b=anEventOut;

nowcontainsadifferentnumber

aField=aVector;

tassignSFVec3ftoSFFloat!

s='

Two\nLines'

;

s'

containsaString

}"

}

1.2.2对象与域

field变量保存的值为函数最后一次调用它的值。

EventOut变量与域变量很类似。

不同的是当一项任务分配了eventOut变量时,一个事件产生。

每个对象有一套属性和方法(见对象和函数定义)。

属性(使用"

."

操作符)用于表达式或表达式的对象。

方法(使用函数调用操作符)用于在对象上执行某些操作?

functionsomeFunction(){

a=newSFColor(0.5,0.5,0.5);

b=a.r;

contains0.5

a.setHSV(0.1,0.1,0.1);

nowcontainsnewproperties

值a.r对应于SFColor的红色属性。

方法a.setHSV()将颜色设置为HSV色彩模式。

1.2.3构造对象

每种类型对象有一个相应的构造函数。

构造函数允许使用灵活的参数对要构造的对象进行初始化。

MF对象实质上是0个以上相应的SF对象组成的数组。

使用关键词new与给定的数据类型可创造相应的对象。

例如:

a=newSFVec3f(0,1,0);

hasaSFVec3fcontaining0,1,0

b=newMFFloat(1,2,3,4)//'

hasaMFFloatcontaining4floats

1.2.4数据变换

数据变换的规则在下列表格列出:

类型

规则

String

∙数字或布尔转换为String

∙使用parseInt()或parseFloat()可把String转换为number

Number与boolean类型

∙将一个标量表达式赋给一个标量类型的固定变量(field或eventOut)时,转换为固定变量的类型

矢量类型

SFVec2f

SFVec3f

SFRotation

SFColor

∙只能与相同的类型组合

∙引用产生标量类型的值

SFImage

∙只容许赋值('

='

)和选择('

.'

)操作

∙只能赋值SFImage类型

SFNode

∙只能赋值SFNode类型

MFtypes

MFString

MFInt32

MFFloat

MFVec2f

MFVec3f

MFRotation

MFColor

MFNode

∙引用(myArray[3])产生相应的SF类型.

∙引用后的SF类型遵守的规则与普通的SF类型相同.

 

1.2.5MF对象

大多数SF对象在VRMLScript中有一相应的MF对象。

一个MF对象实质是上一个对象数组,数组的每个单元是相应的SF类型对象。

所有的MF对象有一个length属性用于返回或设置MF对象中单元的个数。

数组索引以0开头。

如果vecArray是一个MFVec3f对象则vecArray[0]是数组中的第一个SFVec3f对象。

1.3语句

VRMLScript语句与C语言语句相似。

一个语句可出现一个if或for声明后。

多重语句,或复合语句,必须被放在"

{"

与"

}"

之间。

所有语句必须以"

"

结束。

例子:

if(a<

b)

c=d;

//simplestatement,cislocaltotheifstatement

else{//compoundstatement,cisnolongerdefinedhere

e=f;

//eislocaltotheelseblock

c=h+1;

}//eisnolongerdefinedhere

1.3.1条件语句

if语句计算一个表达式,并选择2条语句之一。

简单的if语句中,如果表达的值不是0,则执行后面语句。

if...else语句中,如果表达式的结果是0,则执行else后的语句。

在if...else嵌套的语句中,else与最近的if匹配。

花括号能被用来打破这一限制。

1.3.2循环语句

循环语句包含3个表达式控制循环的执行。

循环语句在循环执行前执行它的第一个表达式。

在每次循环前计算它的第二个表达式,如果表达式值为0,退出循环,执行其他语句。

循环重复执行,直到第二表达式计算到0,或遇到一个break语句,循环被终止。

在典型的应用中,第一表达式初始化循环记数器,第二计算它,第三个对它进行累加。

while语句包含控制循环执行的一个单个的表达式,被循环的语句列在后面。

在每次循环前计算表达式,如果表达式值为0,退出循环。

否则它执行语句并且再测试表达式。

循环重复执行,直到表达式计算到0,或遇到一个break语句,循环被终止.

1.3.3表达式语句

在VRMLScript中任何有效的表达式都是一个语句两个最普通的表达式是函数调用和赋值表达式。

1.3.4Return语句

Return语句可不考虑嵌套结构而从函数中直接返回。

如果指定,其表达式可将计算结果返回被调用的函数。

if(a==0){d=1;

return5+d;

1.3.5Break语句

break语句退出嵌套循环。

执行跟在循环语句后的语句。

while(i<

0){if(q==5)break;

<

otherstatements>

//executioncommenceshereuponbreak.

1.3.6Continue语句

Continue语句跳到循环语句的最后。

执行在循环后的语句。

在for语句中,第二表达式测试第三个表达式的值,看循环是否应该继续。

在for...in语句中next单元被赋值且循环继续。

在while语句中表达式被测试是否循环应该继续。

foraincolorArray{if(a[0]>

0.5)continue;

//loopcommenceshereuponcontinue.

1.4符号

表达式用操作符把变量,对象,常数和其他表达式的值相结合。

a=b?

c:

d;

//tertiaryoperator

1.4.1赋值操作符

表达式=表达式可把右边表达式的结果赋与左边的表达式。

左表达式必须可以存储右边的变量。

包括简单的标识符,操作符,对象的成员,函数的返回值。

另外,二元表达式可使用缩写的方式:

‘+=’,‘-=’‘*=’,‘/=’,‘%=’,‘&

=’,‘|=’,‘^=’,'

,'

,‘>

=’。

a+=5;

//adds5tothevalueofaandassignsittoa

a[3]&

=0x0000FFFF;

//performsbitwise-andofa[3]and0x0000FFFF

//assigningresulttoa[3]

1.4.2算术操作符

算术操作符包括负号(“-”),补集(“~”),递加(“++"

),递减(”--“)和操作符(”+“,“-”,“*”,“/”,“%”)。

负号和补集是前缀。

递加和递减是前缀或后缀。

剩余是二元的。

5+b

(c+5)*7

(-b/4)%6

(c&

0xFF)|256

递增与递减操作符做前缀或后缀时会有不同的结果。

a=5;

//Valueof'

is5

b=a++;

is5,valueof'

is6

c=++b;

c'

is6,valueof'

1.4.3位操作符

位操作符包括与(“&

”),或(“|”),异或(“^”),左移(“<

),右移("

)。

这些都是二元操作符并且对任何标量类型有效。

当他们被使用时,标量的值在操作前被转换为SFInt32,运算后返回原来的表达式类型。

当把他们用于SFFloat或SFTime时,可能发生roundoff错误。

移动操作符左边指定操作数,右边指定移动位数。

a&

0x0FF//clearsupper24bitsof'

a>

5//shift'

5bitstotheright,signextend

1.4.4逻辑,比较操作符

逻辑表达式包括逻辑与('

),逻辑或('

||'

),逻辑非('

),比较操作('

'

=='

)。

每个表达式取值0(false)或1(true)。

常数true,false,TRUE,和FALSE都可使用。

a<

5

b>

0&

c>

1

((a>

4)||(b<

6))

1.4.5字符串操作符

所有的比较操作符可用来为词典排序的字符串作比较。

另外操作符+和“+=”能被用来连接两个字符串。

任何标量与的一个字符串连接,则标量首先转换为一个字符串,然后施行连接。

一个字符串要转换为标量类型可使用parseInt()与parseFloat()函数。

Aoneand'

+'

atwo'

//resultis"

Aoneandatwo"

Themagicnumberis'

+7//resultis'

Themagicnumberis7'

containsanSFTime

a+='

iscorrect'

isnowtheString'

5iscorrect'

1.4.6操作符优先级

相等优先级的操作顺序列在下面的表格中。

使用“(”与“)”括起的操作首先被执行。

优先操作规则:

操作符类型

操作符

注释

逗号

 

赋值

=+=-=*=/=%=

=>

=&

=^=|=

right-to-left

条件

?

:

tertiaryoperator

逻辑或

||

逻辑与

位或

|

位异或

^

位与

相等

==!

=

比较

>

位移动

加/减

+-

乘/除

*/%

取反/累加

~-++--

unaryoperators

引用,成员

()[].

2Script节点的url域支持的协议

脚本的url域可以引用包含VRMLScript的url代码:

Script{url"

vrmlscript:

协议允许脚本被如下嵌入:

Script{url"

functionfoo(){...}"

url域可以这样引用一个远端的文件或嵌入的代码:

Script{

url["

"

]

2.1文件扩展名

VRMLScript源代码的文件扩展名是.vs

2.2MIMEType

VRMLScript源代码的MIME类型如下定义:

application/x-vrmlscript

3处理EventIn事件

送到Script节点的事件被传递给相应的VRMLScript函数。

在Script节点的url域指定Script,是必要的。

函数的名字与eventIn一样,eventIn事件的值value和事件的发生时间timestamp作为参数传递,(看“参数传递和EventIn函数”)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2