VRML---第一章(基本概念、语法)

VRML缺点:建模粗糙、对大型场景的管理能力较差、可实现的交互性操作比较简单、对多用户和共享场景的支持能力比较有限。

公司打算弄一套 三维系统,用VRML加载3D Max 模型,实时数据在三维界面的显示,所以需要学习这门语言(虽然过时,但是能实现某些东西,结果  js和算法导论一同学习)。

 

VRML的语法与结构

VRML文件采用的是文本文件格式,扩展名为.wrl和.wrz。

在运行.wrl文件时,首先要加载VRML浏览器,然后进入浏览器观察运行结果。

VRML文件一般有 文件头、节点和路由组成。节点是VRML文件的基本单位:

#VRML  V 2.0 UTF8   #VRML的文件标志

节点名{                      #VRML的各种节点

    域             域值      #对应节点的域和域值

}

Script{                      #脚本Script节点

}

ROUTE 入事件 TO 出事件   #路由:把入事件与出事件相关联

 

VRML文件区分大小写。

注释方法:  1、# 2 //

 

VRML的空间坐标

VRML空间是一个虚拟的三维空间,在该空间中造型的位置是由这个造型所处的三维空间坐标系决定的。

 

点的坐标是通过坐标值来确定的。

VRML计量单位

在VRML 中,空间单位都是统一的,只有一个单位标量,即VRML单位,和尺寸没有可比性。

VRML的事件可分为绝对事件和相对时间。

VRML数据类型

VRML的数据类型分为两类:单值和多值。单位:其类型符为:SF  ,多值:MF ,多个MF数据之间用逗号或者空格分开,并且用方括号括起来,单值不需要。

SFBool:布尔值,值为TRUE或FALSE,不能用 0和1 表示。

SFFolt 和MFFolt:单个或多个单精度浮点数,如:  1.1,[0.0 1.2]。如果定义  field  MFFolt  A[0.1 ,1.2],若用数组表示时,则为: A[0] = 0.1,A[1]=1.2

SFString 和MFString:单个或多个字符串。VRML字符串用双引号。如果字符串中有双引号,需要在双引号前加反斜杠“\”。

SFVec2f 和MFVec2f:单个或多个二维向量,每个二维向量包含两个浮点数,如 0.0 1.0,[0.3 1.2,0.1 0.0](含有两组浮点数)。

SFVec3f 和MFVec3f:单个或多个三维向量,每个三维向量包含两个浮点数,如 0.0 1.0 0.5,[0.3 1.2,0.1 0.0,0.0 2.1](含有两组浮点数)。

SFTime和MFTime:单个或多个时间值,时间采用绝对时间。

SFRotation 和MFRotation:单个或多个围绕指定转轴的一组数据,包含四个浮点数,前三个是指定的旋转轴坐标,后一个是以弧度表示的旋转角度,弧度大于0表示顺时针旋转,否则是逆时针旋转。如 0.0 1.0 0.0 1.57 ,表示绕Y轴顺时针旋转90度。

SFImage和MFImage:单个或多个非压缩的二维彩色或灰色图像,数据以三个整数引导,后跟多个用空格或者逗号分离的十六进制数,前面两个是每个图元素的宽度和高度比,第三个整数表示十六进制数的字节个数。如   2 2 3 0X3F6030  0X05FF20 0X4080FF 0XFIFB09.

SFColor 和MFColor:单个或多个颜色分量。每个颜色分量包含三个浮点数,如 0.0 1.0 0.5 ,分别对应 红、绿、蓝 颜色的分量。

SFNode 和MFNode  :单个或多个单节点,如  field  SFNode  sec  USE A1 ,定义个一个普通域 SFNode型变量  sec,对应于按照标准节点编写的节点A1.

 VRML节点和域

在VRML中,节点是构成虚拟场景的基本单元,节点由域和事件组成,域的取值决定节点的取值,从而决定虚拟场景的当前状态。

节点是对现实世界中各种对象和概念的抽象描述,作用是描述空间造型及其属性。

VRML提供了54种节点类型:(7种):几何节点、属性节点、编制节点、传感器节点、插补节点、脚本节点和其他节点。

VRML2.0使用场景图来规定节点之间的等级关系与镶嵌关系。

域可以理解为 高级语言中的 变量 数组 数据库的字段等。

VRML的事件和路由

具有属性、行为的实体或模型称为对象,VRML中的节点就是对象,也可以是自定义的其他对象,有的对象具有收发信息的功能,它是通过对象本身的事件来完成的。

事件

事件为节点提供接受外界消息及向外界发送消息的功能。

单击鼠标是操作者所为,事件传感器的定时系统本身产生的事件,坐标值变化时节点本身产生的事件等。对象的事件具有数据类型,即事件传递的节点域值的数据类型。

每一个节点都有两种事件:入事件和出事件。入事件接受变化的域值,是自己的域发生变化,以改变虚拟场景。出事件对域值改变进行设置。

 

路由

连接一个对象的出事件和另一个对象的入事件的路径称为路由。它是产生事件和接受事件的节点之间的连接通道。创建路由之后,线路路由将处于睡眠状态,直到有一个事件从发送点发送到接受节点。

 

 
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
VRML 3D场景中插入GUI-HCI(图形用户界面-人机交互)可以通过MATLAB来实现。MATLAB是一款强大的数学软件,它也可以用于图像处理、计算机图形学和人机交互等领域。 首先,我们可以使用MATLAB中的vrmlwrite函数来创建VRML 3D场景。通过使用该函数,我们可以创建一个包含各种对象和几何体的3D场景。可以将各种物体、光源和相机等元素添加到场景中。 其次,我们可以使用MATLAB中的GUIDE(GUI Development Environment)来创建GUI。GUIDE提供了一种可视化的方式来创建各种界面元素,例如按钮、滑块、文本框等。我们可以使用GUIDE创建一个具有人机交互功能的GUI。 然后,我们需要将MATLAB中的GUI与VRML 3D场景进行链接。可以通过在MATLAB中使用事件处理函数来实现。例如,当用户在GUI上点击按钮时,我们可以编写一个事件处理函数来响应该事件,并在VRML场景中执行相应的操作。这样,用户就可以通过GUI与VRML场景进行交互。 最后,我们可以使用MATLAB中的vrview函数来显示VRML 3D场景和GUI。vrview函数可以将VRML场景和MATLAB中创建的GUI结合在一起,显示在MATLAB的图形窗口中。这样,用户就可以通过GUI与VRML场景进行交互,并实时观察场景的变化。 总而言之,通过MATLAB,我们可以在VRML 3D场景中插入GUI-HCI人机交互。利用MATLAB中的vrmlwrite函数创建VRML场景,使用GUIDE创建GUI,通过事件处理函数进行交互,并通过vrview函数将场景和GUI显示在MATLAB图形窗口中。这样,我们可以实现一个具有人机交互功能的VRML 3D场景。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值