第四章图形输入与交互技术_第1页
第四章图形输入与交互技术_第2页
第四章图形输入与交互技术_第3页
第四章图形输入与交互技术_第4页
第四章图形输入与交互技术_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 根据图形输入信息的不同性质,GKS和PHIGS把输入设备在逻辑上分成以下几类: 定位设备(Locator) 描画设备(Stroke) 定值设备(Valuator) 选择设备(Choice) 拾取设备(Pick) 字符串设备(String) 为了使图形软件包独立于具体的硬件设施,图形输入命令不涉及具体的输入设备,而只涉及该命令所需的数据。 4.2.1 概述概述 在交互输入过程中,常用的控制方式是请求、取样、事件及其组合形式等4种。 输入控制的方式取决于程序和输入设备之间是如何相互作用的。例如,可用程序来初始化输入设备,或者程序与输入设备同时工作,或者由设备初始化输入数据。 输入控制方式都可定义

2、相对应的输入命令,而且图形交 互系统允许对每种逻辑设备执行相应的输入操作。例如,可设置如下命令: set_locator_mode(ws, device_code, input_mode)表4.1 设备编码及其类型对应关系操纵杆 8触摸屏 4语音输入器 11按钮 7光笔 3轨迹球 10刻度盘 6图形输入板 2鼠标器 9指拇轮 5键盘 1物理设备类型设备编码物理设备类型设备编码物理设备类型设备编码4.2.1 概述(续)概述(续) 4.2.2 请求方式请求方式 在请求方式下,只有输入设置命令(或语句)对相应的设备设置所需要的输入方式后,该设备才能作相应的输入处理。在输入命令中,每种逻辑设备所包括的

3、参数是和输入数据类型有关的。举例如: 2. request_stroke(ws, device_code, n, xa, ya) 请求方式下的笔划输入命令, 输入的n个点的坐标 存放在数组xa和ya中。 request_pick(ws, device_code, segment-id) 应用程序中拾取到输入的图段 1. request_locator(ws, device_code, x, y) 该命令把定位器置成请求输入控制方式,其中x、y 用来存储一个点的坐标值。 4.2.2 请求方式(续)请求方式(续) 请求方式的工作过程 4.2.3 取样方式取样方式 一旦对一台或多台设备设置了取样方式

4、,立即就可以进行数据输入,而不必等待程序中的输入语句。 设置定位设备为取样方式的命令是: sample_locator(ws, device_code, x, y)将其他逻辑设备设置为取样方式的命令都与此类似 取样方式的工作过程 4.2.4 事件方式事件方式 当某台设备被设置成事件方式,程序和设备将同时工作。向设备输入的数据都可存放在一个事件队列或输入队列中。 在应用程序中,检索事件队列可用下述命令: await_event(time, device_class, ws, device_code) 当用await_event命令使某设备进入事件输入控制方式, 而且事件队列为非空时,队列中的第一

5、个事件就被传送到 当前事件记录中。 用户可用下述命令从当前事件记录中得到一个定位数据 get_locator(x, y) 4.2.4 事件方式事件方式 (续) 下述程序用await_event、get_locator命令从1号工作站的图形输入板上输入一个点集,并用直线段连接这些点。 set_stroke_mode(1, 2, event); if(device_class=stroke) await_event(60, device_class, ws, device_code); get_stroke(n, xa, ya); polyline(n, xa, ya); 在事件方式下,若只有这台

6、图形输入板处于激活状态,那么这个if条件就不需要了。 4.2.4 事件方式事件方式 (续) 在事件方式下,可同时应用多台输入设备以加快交互处理。下面的程序从键盘输入所需选择的属性并从图形输入板输入数据画折线。set_polyline_index(1);set_stroke_mode(1, 2, event);(把图形输入板设成笔划设备)set_choice_mode(1, 7, event);(把键盘设成选择设备)do await_event(60, device_class, ws, device_code); if(device_class=choice) get_choice(optio

7、n); et_polyline_index(option); else if(device_class=stroke) get_stroke(n, xa, ya); polyline(n, xa, ya); while(device_class)事件方式的输入过程 4.2.4 事件方式事件方式 (续)4.2.5 输入控制方式的混合使用输入控制方式的混合使用 在此讨论一个在不同输入控制方式下同时应用各种输入设备的情况。操作目的是要拖动一个形体在屏幕上运动,当达到最终位置时,可按动特定键来终止这种拖动。光笔的位置是由取样方式得到的,按钮的输入存放在事件队列中 set_locator_mode(1,

8、 3, sample);(把光笔设成定位设备)set_choice_mode(1, 7, event);(把按钮设成选择设备)if(class=choice) (如按过特定按钮键,则停止) else sample_locator(1, 3, x, y); (读入光笔的位置)(把形体平移到x, y处,并输出形体,此处这段程序略) await_event(0, class, ws, code); (检查输入的事件队列) 光笔的位置是由取样方式得到的,按钮的输入存放在事件队列中 交互技术指使用输入设备进行输入的技术。 本节介绍一些常用的交互技术,这些技术可作为设计 应用系统用户接口的基本要素 4.3

9、.2 橡皮条技术橡皮条技术4.3.1 定位技术定位技术4.3.3 拖拽技术拖拽技术 4.3.5 定值技术定值技术 4.3.4 菜单技术菜单技术 4.3.7 网格与吸附技术网格与吸附技术 4.3.6 拾取技术拾取技术4.3.1 定位技术定位技术定位是图形输入和图形操作时常用的输入操作之一。定位有直接定位和间接定位两种方式。 鼠标等设备的相对移动控制光标定位(异或方式显示光标) 4.3.2 橡皮条技术橡皮条技术 定位操作有时依赖于环境。例如,在绘图时,已经存在一个圆C和圆外一点A,现在要确定另外一点B,使两点连线AB与圆C相切。这种点的确定可通过使用橡皮条技术而变得容易实现。用橡皮条技术定位(显示

10、线段用异或方式) 4.3.2 橡皮条技术橡皮条技术(续续)橡皮条技术图例 4.3.3 拖拽技术拖拽技术 拖曳技术被用于拼装定位和其他一些操作(如布局操作)中去,以便使工作变得直观、简便、高效。 拖曳一个二极管符号 4.3.4 菜单技术菜单技术 菜单是一种很重要的交互技术,它可用于指定命令、 确定操作对象或选定属性等多中选一的场合。 菜单的层次结构菜单的层次结构(单层次的、多层次的 ) 菜单的表示菜单的表示 (字符串方法、图符方法和图像方法 ) 菜单的显示控制菜单的显示控制 (固定式、弹出式 ) 菜单的选择菜单的选择 菜单可通过多种设备来选择,如使用指点设备直 接选择、使用方向键顺序循环选择、使

11、用数字键指定 选择或使用功能键对应选择等。 4.3.5 定值技术定值技术 定值输入用于设置物体旋转的角度、缩放的比例因子等 刻度尺与比例尺 圆形刻度尺与比例尺 4.3.6 拾取技术拾取技术 在图形系统的许多交互操作中,经常需要在一个分层 的对象结构或虽不分层但很复杂的对象结构中拾取一个基 本对象或一些基本对象的集合,然后对其施加某种操作 。拾取一个基本对象可以通过一些方法来实现 : 指定名称法 特征点法 外接矩形法 分类法 直接法 4.3.6 拾取技术拾取技术(续续)拾取操作 4.3.7 网格与吸附技术网格与吸附技术网格化是绘制整齐、精确图形的一种技术。 有时要从某已有线段上的点或它的顶点开始绘制另一条线段或其他图形,直接使用定位设备很难保证选中点的重合性。吸附技术则可克服这种困难。 带有引力场的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论