📄 vrml第一章到第十一章.txt
字号:
第一章 浏览器
1、浏览方式控制
Walk 模拟人在虚拟世界中的走动和转向
Pan 在虚拟世界中的向上下或左右的平移
Turn 改变浏览者的视野角度,相当于现实世界中人们的仰视、俯视、左转和右转。但是Turn可以实现任意角度的旋转,会形成一些在现实世界中不可能出现的奇怪视角,容易使浏览者分不清方向。
Roll 在一个垂直面上实现顺时针的和逆时针的视角的转动。
Goto 单击一个对象就将靠近单击的位置观察。
Study 在浏览者的面前以不同的方向和不同的角度旋转一个或一组漂浮在空间的物体,对感兴趣造型的某些细节进行仔细观察。
2、浏览视点控制
View 视点是浏览者在三维空间中的观察位置。如果VRML文件设置了多个视点,那么单击View两侧的箭头将切换视点为当前视点的前一个视点或后一个视点,而单击View则返回当前视点,另外右击View将弹出一个所有视点的列表,选择其中之一将显示视点之间的快速切换。
Zoon Out 当浏览者在一个并不熟悉的虚拟世界中迷失了方向时,它将自动切换到一个远景的视点上,在这个视点上浏览者将看到整个的虚拟世界。
Straighten Up 使浏览者的视线快速转移到正前方,且使其与地面平行。
Restore 将浏览者的视点切换到VRML文件默认的观点上,也就是浏览者进入虚拟世界的第一个视点。
第二章 VRML文件的基本内容
1、文件头
#VRML V2.0 utf8
2、路由
将各个不同的节点绑定在一起以使虚拟空间具有动感和交互性。
在绑定路由的过程中应注意:
1.和节点的域和域值一样,输入接口(eventIn)和输出接口(eventOut)同样有一定的数值类型。且绑定在一起的输入和输出接口就应该具有相同的数值类型,否则必将导致意想不到的错误。
2.绑定两个节点的路由在没有触发之前一直都处于休眠的状态,只有在被触发时,才有事件从输出接口的节点产生,并且通过路由传送到输入接口的节点,引起相应的虚拟世界中的变化。
3.可以将多个节点绑定在一起,从而创建复杂的线路。
3、节点
1.VRML中的各种域值类型
域值类型 简要说明
SFBool 开关值。值为TRUE或FLASE,常用于指定某一个属性的打开或关闭
SFFloat/MFFloat 浮点值。值为具有正负之分的实数,用于指定某一个确定的数值属性
SFColor/MFColor 颜色值。值为由3个浮点值组成的数组,用于指定一个RGB规定的颜色
SFRotation/MFRotation 旋转值。值为由4个浮点值组成的数组,前3个数指定旋转的坐标轴,第4个数指定旋转的角度
SFString/MFString 字符串。值为由中括号中的一组字符,用于指定多个选择中的一个选项
SFVec2f/MFVec2f 二维浮点矢量。值为2个浮点值,用于指定一个二维的位置
SFVec3f/MFVec3f 三维浮点矢量。值为3个浮点值,用于指定一个三维的位置
SFInt32/MFInt32 32位整数。值为正整数
SFImage 图象值。用于指定描述图象颜色的一系列的数值,用于绘制造型表面的纹理图象
SFTime 时间值。值为一个从格林威治时间1970年1月1日零时整开始的、以秒计算的时间,用于指定一个动画开始和结束的时间
SFNode/MFNode 节点值。用于表明一个属性节点,控制造型节点创建造型
注:表中以SF开头的是单值类型,该数值只是一个单一的数或数组;而MF开头的是多值类型,该数组指定的是一个数或数组的列表。
2.定义节点名称及其引用
定义一个名称,然后在本文件的后面可以反复地引用该节点。
被定义的节点称为原始节点,对被命名节点的引用称为实例。当原始节点中的域值被修改,所有的实例也将自动同时修改。
定义节点名称的语法如下
DEF 节点名称 节点{ ...
... }
引用节点的语法如下
USE 节点名称
注:1.节点名称可以由大小写字母、数字和下划线组成
2.节点名称中的字母区分大小写
3.节点名称不能以数字开头
4.节点名称不能包括诸如空格、Tab等不能打印的字符
5.节点名称不能包括单双引号、加号、减号、逗号、句号、各种括号、英镑符号等字符
6.在VRML中以下用作特殊用途的字符串也不能用作节点名称:
DEF,EXTERNPROTO,FALSE,IS,NULL,PROTO,ROUTE,TO,TRUE,USE,evevtIn,eventOut,expoesdField,field
4、注释信息
注释部分是以“#”字符开头,结束与该行行尾。
第三章 空间坐标系
1、单位
VRML单位。与现实尺寸没有可比性
2、角度单位
在VRML空间中使用的角度单位是通常使用的弧度。
弧度与角度之间的互换公式如下:
弧度=角度×π/180 ;π=3.1415926
一些常用角度的弧度值
角度值 0 30 45 60 90 120 135 150 180
弧度值 0.0 0.524 0.785 1.047 1.571 2.094 2.356 2.618 3.1416
3、空间坐标系
略......
第四章 基本造型
1、
1.Shape节点语法
Shape{
appearance NULL #域值类型 SFNode
geometry NULL #域值类型 SFNode
}
appearance域的域值是一个定义了造型外观的Appearance节点。Appearance节点将定义造型外观的颜色和纹理。缺省值表示为一个白色且发光的造型外观。Appearance域中包含有set_appearance的输入接口和appearance_changed的输出接口,可以通过将正确的事件传送到前者来改变appearance域的域值,新的域值将通过后者输出去。
geometry域的域值是一个定义了空间造型的几何尺寸大小的造型节点。缺省值表示没有造型存在。包含set_geometry和geometry_changed(同上)。
2.Appearance节点语法
Appearance(
material NULL #域值类型 SFNode
texture NULL #域值类型 SFNode
texture Transform NULL #域值类型 SFNode
}
3.Material节点语法
Material{
ambientIntensity 0.2 #域值类型 SFFloat
diffuseColor 0.8 0.8 0.8 #域值类型 SFColor
emissiveColor 0.0 0.0 0.0 #域值类型 SFColor
shininess 0.2 #域值类型 SFFloat
specularColor 0.0 0.0 0.0 #域值类型 SFColor
transparency 0.0 #域值类型 SFFloat
}
2、基本的VRML造型节点
1.BOX节点语法(正方体、长方体)
Box{
size 2.0 2.0 2.0 #域值类型 SFVec3f
}
2.Cylinder节点语法(圆柱体)
Cylinder(
radius 1.0 #域值类型 SFFloat
height 2.0 #域值类型 SFFloat
side TRUE #域值类型 SFBool
top TRUE #域值类型 SFBool
bottom TRUE #域值类型 SFBool
}
3.Cone节点语法(圆锥体)
Cone{
bottomRadius 1.0 #域值类型 SFFloat
height 2.0 #域值类型 SFFloat
side TRUE #域值类型 SFBool
bottom TRUE #域值类型 SFBool
}
4.Sphere节点语法(球体)
Sphere{
radius 1.0 #域值类型 SFFloat
}
3、节点的编组
通过Group编组节点将不同的VRML节点组织在一起来创建复杂的造型,进而构造整个的虚拟世界。
Group节点语法
Group{
children [] #域值类型 MFNode
bboxCenter 0.0 0.0 0.0 #域值类型 SFVec3f
bboxSize -1.0 -1.0 -1.0 #域值类型 SFVec3f
addChildren #输入接口 MFNode
removeChildren #输出接口 MFNode
}
注:children域用于指定该组的组元的一个列表,各个组元在自己的最后用逗号与其他的组元分开。children域的域值通常包含造型节点Shape和其他的Group节点。children缺省域值为一个空的组元列表,即一个空组。
见示例:[航空塔.wrl]
第五章 文本造型
1、Text节点语法
Text{
string [] #域值类型 MFString
length [] #域值类型 MFFloat
maxExtent 0.0 #域值类型 SFFloat
fontStyle NULL #域值类型 SFNode
}
1.string域
用于指定所要创建的文本内容。创建多行文本只需将所要创建的各行文本分别用引号引出,其中用逗号隔开即可。
输入接口set_string和输出接口string_changed。
2.length域
文本的缺省字符尺寸大小为1.0单位,字符间距1.0单位。
length域的域值用于指定每一行的文本造型的长度,使用的单位为VRML单位。Length域的缺省域值为0.0,代表文本造型将以原本的字符大小和间距来创建。
当string域指定的是多行文本,可以分别指定每一行文本造型的长度,只要在中括号中给出一串以逗号分隔开来的长度值即可。若长度值过少则后面的用缺省值,多的则忽略。
3.maxExtent
用来指定一个string域中创建的各个文本行的最大的长度,即长度大于这个最大长度的文本行将被压缩至指定的长度,而长度小于最大长度的文本将保持原有的长度不变。
4.fontStyle
用于指定Text节点所创建的文本的外观特征。fontStyle域的域值通常为一个FontStyle节点。
2、FontStyle节点语法
FontStyle{
family "SERIF" #域值类型 SFString
style "PLAIN" #域值类型 SFString
size 1.0 #域值类型 SFFloat
spacing 1.0 #域值类型 SFFloat
justify "BEGIN" #域值类型 SFString
horizontal TRUE #域值类型 SFBool
leftToRight TRUE #域值类型 SFBool
topToBottom TRUE #域值类型 SFBool
language "" #域值类型 SFString
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -