📄 vrml第一章到第十一章.txt
字号:
1.family
用于指定创建文本所用的VRML字体,分别为"SERIF"、"SANS"和"TYPEWRITER"。前两种是变宽字体(各字符大小不等),后一种是等宽字体。
2.style
用于指定文本的外观风格。
PLAIN:缺省域值,即使用常用的文本风格
BOLD:加粗字符
ITALIC:倾斜字符
BOLDITALIC:既加粗又倾斜的字符
3.size
字符尺寸大小,指定字符高度。
4.spacing
用于指定在string域中的文本列表中各个字符串在空间的距离。
5.指定文本的排列对齐方式
FontStyle节点中的horizontal、leftToRight、topToBottom和justify域用来共同指定文本的排列和对齐方式。
↑y ↑y ↑y ↑y
┃ ┃ ┃ ┃
┃ ┃ ┃ ┃bdf
┃ ━━━╋━━━━━━→x fFeE┃ ┃BDF
┃ ┃ACE dDcD┃ ┃ace
┃AaBb ┃ace bBaA┃ ┃ACE
━━━╋━━━━━━→x ┃BDF ━━━╋━━━━━━→x ━━━╋━━━━━━→x
┃CcDd ┃bdf ┃ ┃
┃EeFf ┃ ┃ ┃
┃ ┃ ┃ ┃
a) b) c) d)
图号 horizontal域 第一方向 第二方向 leftToRight域 topToBottom域
a) TRUE X轴方向 Y轴方向 TRUE TRUE
b) FALSE Y轴方向 X轴方向 TRUE TRUE
c) TRUE X轴方向 Y轴方向 FALSE FALSE
d) FALSE Y轴方向 X轴方向 TRUE FALSE
通过justify域来指定文本的对齐方式。它是一个对齐值的列表,其中第1个值用于指定第一个方向上的文本对齐方式;第2个值用于指定第二个方向上的文本对齐方式,两个值用逗号隔开放在中括号里面。对齐值包括"FIRST"、"BEGIN"、"MIDDLE"和"END",对齐基准是坐标X轴和Y轴。
6.language
指定所要创建的文本所使用的语言类型。
language域值列表
language域值 所代表语言 说明
ar 阿拉伯语
de 德语
de_DE 德语 德国
de_CH 德语 瑞士
en 英语
en_US 英语 英国
en_GB 英语 美国
hi 印度语
jp 日语
ru 俄语
sa 梵语
zh 中文
zh_TW 中文 繁体
zh_CN 中文 简体
3、文本造型和基本几何造型的结合
文本节点和几何造型节点一样都是作为Shape节点的geometry域的域值。 [见示例]
第六章 造型的定位和旋转
在VRML中创建新的空间坐标系都是通过将所要安排位置和方向的造型用Transform编组节点编组,一个Transform节点表示相对当前坐标系形成了一个新的坐标,而在Transform节点编组中的空间造型都是相对于这个新创建的坐标系所创建的。和Group一样,Transform节点也可以通过children域来嵌套。
Transform节点语法
Transform{
children [] #域值类型 MFNode
translation 0.0 0.0 0.0 #域值类型 SFVec3f
rotation 0.0 0.0 1.0 0.0 #域值类型 SFRotation
scale 1.0 1.0 1.0 #域值类型 SFVec3f
scaleOrientation 0.0 0.0 1.0 0.0 #域值类型 SFRotation
bboxCenter 0.0 0.0 0.0 #域值类型 SFVec3f
bboxSize -1.0 -1.0 -1.0 #域值类型 SFVec3f
center 0.0 0.0 0.0 #域值类型 SFVec3f
addChildren #输入接口 MFNode
removeChildren #输出接口 MFNode
}
注:children域用于指定该Transform节点的子节点的列表。通常包括造型节点Shape,以及它的编组节点。
translation用于指定新的空间坐标系相对原先坐标系的空间位置。可通过事件输入接口set_transform和输出接口transform_changed.
rotation指定新的空间坐标系相对于原先坐标系的旋转轴和旋转角度。前面3个数指一个空间点的坐标值,第4个数以弧度为单位给出旋转的角度,将以给定点和原先坐标系的原点的连线作为旋转轴旋转给定的角度来创建新的坐标系。(可以使用事件接口)
center指定造型旋转的旋转中心。当创建一系列相互衔接但是方向不同的空间造型的时候,就需要重新设置旋转中心值。(可以使用事件接口)
1.坐标系平移
[坐标系多层嵌套.wrl]
2.坐标系的旋转
[坐标系平移和旋转综合应用.wrl]
第七章 造型缩放
1、scale域
scale域值分别给出了在3个坐标轴方向上的坐标缩放系数,3个系数均为非零的正数。缩放相对原点是对称的缩放中心可以通过Transform节点的center域指定。(可以使用事件接口)
2、scaleOrientation
指定一个特殊的造型的缩放方向。scaleOrientation并不能真正地旋转坐标系。而用scaleOrientation域指定了适当的缩放方向后,scale域所指定的缩放系数将作用于指定的缩放方向上,而不是当前坐标系的坐标轴方向上,这样缩放后的正方体造型竟会有不同于前面的空间形状,其结果是一个空间平行六面体
3、center
指定一个适当的空间旋转中心。
[center域001.wrl]
[center域002.wrl]
[Transform节点中各个域的综合使用.wrl]
第八章 外观控制
Appearance节点和Material节点的使用方法。
1、基本的颜色理论
几种常见颜色在VRML中的RGB数值
红色(Red) 绿色(Green) 蓝色(Blue) 颜色描述
0.0 0.0 0.0 黑
0.2 0.2 0.2 深灰
0.6 0.6 0.6 淡灰
0.8 0.8 0.8 浅灰
1.0 1.0 1.0 白
1.0 0.0 0.0 纯红
0.0 1.0 0.0 纯绿
0.0 0.0 1.0 纯蓝
1.0 1.0 0.0 黄
0.0 1.0 1.0 蓝绿
1.0 0.0 1.0 绛红
0.6 0.0 0.0 暗红
0.0 0.6 0.0 墨绿
0.0 0.0 0.6 深蓝
2、指定造型材料
1.Material节点
在VRML中通过Material节点来指定空间造型的外观材料,而Material节点通常是作为Appearance节点的matrial域的域值出现。
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
}
diffuseColor用来指定造型材料颜色。(可以使用事件传送接口)
emissiveColor用来指定造型发光颜色,同时也可以指定空间造型是否发光,默认值为黑色,表示空间造型不发光,只是反射环境光线。指定一个较为明亮的颜色作为域值可以提高空间造型的发光度。(可以使用事件传送接口)
specularColor指定造型有镜面反射的区域的颜色,同时也可以指定空间造型是否会发生镜面反射。缺省值是该空间造型不发生镜面反射,在造型表面上不会出现高亮区域。 (可以使用事件传送接口)
transparency指定空间造型的透明度。其域值是一个在0.0和1.0之间的实数,缺省值空间不透明;当域值为1.0时空间造型完全透明。(可以使用事件传送接口)
ambientIntensity指定空间的环境灯光对空间造型的影响程度。其域值是一个在0.0和1.0之间的实数,缺省值表示环境灯光对空间造型的影响程度较小。在完全相同的环境灯光下,当ambientIntensity取一个较大值时,空间造型会更加显眼。(可以使用事件传送接口)
shininess用来指定空间造型材料的亮度。shininess和specularColor相互影响,较大的shininess值使造型更有光泽。(shininess域值可以通过事件输入接口set_shininess进行重新设置;新的shininess域值通过输出接口shininess_changed传送出去。)
2.用Material节点指定造型材料
[用Material节点指定造型材料001.wrl]
[用Material节点指定造型材料002.wrl]
[用Material节点指定造型材料003.wrl]
[用Material节点指定造型材料004.wrl]
几种常用材料的Material节点域值
视觉效果 diffuseColor specularColor shininess ambientIntensity
金 0.3 0.2 0.0 0.7 0.7 0.6 0.20 0.40
银 0.5 0.5 0.7 0.8 0.8 0.9 0.20 0.40
铜 0.4 0.2 0.0 0.8 0.4 0.0 0.10 0.28
铝 0.3 0.3 0.5 0.7 0.7 0.8 0.10 0.3
绿塑料 0.2 0.8 0.2 0.8 0.8 0.8 0.15 0.1
蓝塑料 0.2 0.2 0.8 0.8 0.8 0.8 0.15 0.1
红塑料 0.8 0.2 0.2 0.8 0.8 0.8 0.15 0.1
[用Material节点指定造型材料005.wrl]
3、指定空间造型的材质贴图
指定造型贴图的节点有ImageTexture、PixelTexture和MovieTexture共3个,这3个节点都可以作为Appearance节点的texture域的域值来为空间造型指定表面贴图。
1.ImageTexture用于指定一个静态的外部文件作为造型的表面贴图。可指定的外部文件的格式JPEG(.jpg)、GIF(.gif)和PNG(.png)共3种。(可以使用事件接口)
ImageTexture节点语法
ImageTexture{
url {} #域值类型 MFString
repeatS TRUE #域值类型 SFBool
repeatT TRUE #域值类型 SFBool
}
url用于指定一个造型表面材质贴图的地址列表,其中优先级从高到低排列。
[贴图001.wrl]
[贴图002.wrl]
创建只有部分分离造型的空间造型。
[贴图003.wrl]
如果指定的空间造型的表面材质贴图是彩色图象时,该造型Shape节点中的material域值Material节点所指定的材料颜色将被忽略,但是如果指定的表面贴图文件是一个灰度图象文件,则表面贴图和Material节点所指定的颜色将共同作用于空间造型上,空间造型将显示出一些特殊的视觉效果。
[贴图004.wrl]
2.MovieTexture用于指定一个动态的外部电影文件作为造型的表面贴图。通常应该是MPEG格式(.mpg),在VRML中可以控制这个电影文件的播放时间、播放速度等。
[MPEG贴图.wrl]
MovieTexture节点语法
MovieTexture{
url {} #域值类型 MFString
loop FALSE #域值类型 SFBoot
speed 1.0 #域值类型 SFFloat
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -