交互式技术与用户接口_第1页
交互式技术与用户接口_第2页
交互式技术与用户接口_第3页
交互式技术与用户接口_第4页
交互式技术与用户接口_第5页
已阅读5页,还剩100页未读 继续免费阅读

下载本文档

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

文档简介

1、交互式技术与用户接口第1页,共105页,2022年,5月20日,8点50分,星期日内容摘要在计算机图形学中,交互技术与用户接口是必不可少的部分。图形与交互式技术的完美结合,可以为用户提供简单、方便、美观的操作界面,即用户接口。由于交互技术在计算机图形学中的普遍使用和重要性,人们通常也将计算机图形学称为交互式计算机图形学。随着计算机软、硬件技术的发展,交互技术和用户接口技术已从应用程序中独立出来,提出了用户接口管理系统(UIMS:User Interface Management System)的新概念,并逐渐形成形影的学科。目前,许多面向对象的程序语言都提供了对交互式技术的支持。第2页,共10

2、5页,2022年,5月20日,8点50分,星期日内容摘要 用户接口是人与计算机交互的界面,人-机交互方式从问答方式、菜单交互方式发展到现在的图形交互方式、窗口管理系统、图标以及其它丰富多彩的图形界面,已成为流行的人-机交互环境。本章主要内容包括: 用户接口的常用形式; 交互式设备、交互式任务和交互技术; 交互系统的概念和方法 重点在于了解交互任务和方式,以及交互技术的实现原理。第3页,共105页,2022年,5月20日,8点50分,星期日6.1 用户接口的常用形式 用户接口通常由图形软件来实现。在各种应用程序中,实现用户接口有三种形式,即子程序库、专用语言和交互式命令。1子程序库 这种形式的基

3、本思想是选择一种合适的高级程序设计语言,如C、C+、Java等作为主语言,用此主语言扩展一系列的过程与函数用以实现有关的图形设计和处理。在此情况下,应用程序包括两部分:一是主语言的程序;二是扩展的过程或函数调用语句。 第4页,共105页,2022年,5月20日,8点50分,星期日 常用的子程序库有ISO公布的图形核心系统GKS、GKS-3D、PHIGS、PHIGS+等,美国SGI公司推出的图形程序库GL和OpenGL。这类子程序库通常提供多种主语言的联编形式,其功能概括如下:()基本图形的生成,包括点、线、圆弧、字符和自由曲线等;()坐标变换,支持平移、旋转、比例、对称、投影和裁剪等操作;()

4、设置图形属性和显示方式。图形属性包括线型、线宽、填充图案、字体和光标,显示方式包括颜色、饱和度、亮度以及明暗效应等形式。()输入输出子程序:启动不同的输入输出设备,并对相应的事件队列进行处理;()真实图形的处理:包括选择消除隐藏线(面),不同的光照模型,生成真实图形的不同算法等;()用户界面的设计:包括窗口设计、菜单设计、对话框、列表框等交互界面。第5页,共105页,2022年,5月20日,8点50分,星期日 用子程序库设计用户接口,使用方便、便于扩充,便于在用户自己编写的程序代码中加入子程序库中的函数,可以充分利用高级程序设计语言本身具有的功能,实现用户希望产生的图形和交互处理。但是,这种方

5、式实现用户界面需要不断地编写、调试和修改源程序,不形象直观。子程序库函数的调用格式要随所用主语言而定,对子程序库的使用应遵循相应主语言对子程序或函数的调用约定。第6页,共105页,2022年,5月20日,8点50分,星期日2专用语言 图形专用语言是专门用于图形处理的程序设计语言,常见的形式有两种:一是解释执行,即扫描专用语言的每一条语句,解释并执行。如Visual BASIC中的Color、Line等语句。二是编译型语言,经编译、装配链接后生成可执行代码。 Adobe公司推出的页面描述语言(PostScript,简称PS语言)是一个优秀的图形专用语言。它是一种解释型的语言,能对正文、图形和图像

6、所产生的任意组合进行描述,并能支持包括条件执行、过程和变量在内的许多程序设计语言的特征。PS含有数百条功能很强的命令,并能对复杂的页面进行高效而精确的描述。目前,PS语言不仅在照排系统、出版系统中有广泛的应用,而且在图形处理、多媒体技术领域都有良好的应用前景。第7页,共105页,2022年,5月20日,8点50分,星期日3交互命令 交互反映了人与计算机运行的程序之间传递信息的形式。如在AUTOCAD中的Command:输入交互式图形命令进行绘图。交互式用户接口就是基于某种模型,实现用户所需要的输入、选择、拾取和增、删、改操作。 交互式用户接口是用户与应用系统的核心功能模块之间的界面,它负责接收

7、用户向系统输入的操作命令及参数,经检验无误后调出相应的应用程序模块执行之,执行的结果在以一定的形式通知用户。第8页,共105页,2022年,5月20日,8点50分,星期日 交互处理中最常用的增、删、改操作,另外还有询问、设置等,操作的对象包括图形、属性以及字符串说明。定位和拾取是增、删、改操作的基础。增操作一般对应输出,其动作包括:设定为点、选择输出内容、输入有关参数、输出存储结果。删操作对应的动作有:拾取删除对象、确认拾取的对象、删除对象、修改存储结构中的内容。改操作应执行的内容是:拾取修改对象、确认拾取的对象、输入修改参数、输出修改结果,经确认后存储结果。第9页,共105页,2022年,5

8、月20日,8点50分,星期日6.2 交互设备、交互任务和交互技术6.2.1 交互设备交互设备通常是计算机的外部设备,它是实现交互技术、完成交互任务的基础。从逻辑上分,交互设备分为定位、键盘、选择、取值和拾取五种设备。不同的交互任务可以选择不同的交互设备来完成。第10页,共105页,2022年,5月20日,8点50分,星期日1定位设备定位设备分为绝对坐标或相对坐标、直接或间接、离散或连续三类。如数字化板、触摸屏是绝对坐标设备,它们都有绝对原点,定位坐标是相对原点来确定的。而像鼠标器、跟踪球、操纵杆等设备没有绝对原点,定位坐标是相对前一点的位置来确定的。相对坐标设备可指定的范围可以任意大。直接设备

9、像触摸屏,用户可直接用手指指点屏幕来实现定位。间接设备像鼠标器,用户移动屏幕上的游标,并不是直接在屏幕上操作。连续设备是一种把手的连续运动变成游标的连续运动,向鼠标器、操纵杆、数字化板等设备,而键控游标即为离散设备。连续设备与离散设备相比使用自然、快捷、方便,同时离散设备难于精确定位。第11页,共105页,2022年,5月20日,8点50分,星期日2键盘设备键盘是应用最早的交互设备,它同时具有定位、选择、取值等多种功能,它主要是通过键盘输入相应的命令和参数,或直接通过键盘命令(如Ctrl,Shift,Ins,Del等)来完成交互式任务。3取数设备某些取数设备是有界的,像一把尺子或一个度盘,当尺

10、子或度盘上的游标到达用户需要的数值后,按一下鼠标器确认键或回车键,即可把此数输入到数据域内。一般是把尺子的一端作为初始值,另一端为终止值。 第12页,共105页,2022年,5月20日,8点50分,星期日 4选择设备功能键是最常用的选择设备,按下某一个功能键即可实现用户希望的某个功能。键盘上的每一个键都可经过应用程序的重新定义而变为功能键。通过游标选择指定的项或图,其实质是通过游标的位置实现选择,它不是选择设备。 5语音识别器这是一种目前还没有普遍使用但很有发展前途的交互设备,这也是一种综合的交互设备,用它可进行选择、取数和定位。但由于对不同人的发音识别精度还很低,故语音识别器的正确率还不高,

11、离实用化还有一定距离。 第13页,共105页,2022年,5月20日,8点50分,星期日6三维交互设备三维交互设备现在还不成熟,从原理上看,不少二维交互设备,如操纵杆在旋转的同时允许其可以移动,则可以形成三维效果。但真正实用的三维交互设备目前已有两种,一是基于三维传感器的三维坐标测量仪,二是数据手套。用数据手套可以记录手指的位置和方向以及手指的运动轨迹,这为构造真正的三维交互式图形系统及虚拟现实环境奠定了基础。第14页,共105页,2022年,5月20日,8点50分,星期日6.2.2 基本交互任务和交互技术交互技术是用户用交互设备把信息输入进计算机的不同方式,而交互任务是用户输入到计算机的一个

12、单元信息。最基本的交互任务有四种,即:定位、字串、选择、取数。对于一个给定的交互任务,可用多种不同的交互技术来实现,如一个选择任务可通过鼠标在菜单中选一项,也可用键盘输入选择项的名字,还可以通过按一个功能键实现选择。类似的情况是一种交互设备可用于不同的交互任务,如鼠标既可以用于定位,也可以用于选择。因此,交互任务是图形系统所要完成的目标,而交互技术则是完成交互任务的手段,并且交互技术的实现在很大程度上依赖于交互设备及其支撑环境。交互式图形系统的基本任务包括:定位、选择、文字输入和数值输入。下面结合各个基本交互任务,介绍一些常用的交互技术。 第15页,共105页,2022年,5月20日,8点50

13、分,星期日1定位用来给应用程序指定位置坐标。实现定位的交互技术通常有两种:一是把屏幕上的光标移到要确定点,再按下鼠标确认键;再就是用键盘直接输入点的坐标。定位设备可以是直接的(如光笔)或间接的(如数字化板、鼠标器、游戏棒),也可以是连续的(如鼠标器)或离散的(如光标控制键),也可以是绝对的(如数字化板)或相对的(如鼠标器)。另外,用键盘上的上、下、左、右键可以移动光标。还可以将这些技术混合在一起,以便于精确的的定位。第16页,共105页,2022年,5月20日,8点50分,星期日在定位技术中,需要的考虑的因素有:(1)坐标系统。在交互式图形系统中,一般有三种坐标系,即屏幕坐标系、用户坐标系和物

14、体坐标系。(2)分辨率。定位任务中所要求的分辨率随应用程序的不同而不同。台板、鼠标器等定位设备的分辨率至少可以和分辨率为5002000的显示器一样高。(3)网格技术。在许多定位任务中,一个重要的视觉辅助工具就是在屏幕工作区中较低的亮度或较淡的颜色显示出网格作为背景,以帮助调整定位的位置,使定位点落在网格上。要实现网格化,应用程序可以在定位点靠近某个网格点时,就将定位器的坐标截断到这个最近的网格点上,如 AUTOCAD中的grid和Snap命令。 第17页,共105页,2022年,5月20日,8点50分,星期日(4)反馈技术。不同定位方式需要不同的反馈形式,有两类定位方式:空间定位方式和数值定位

15、方式。对于空间定位方式,例如,圆心定位,用户希望当鼠标靠近圆心时,应用程序能自动反馈出圆心位置。而在数值定位方式中,用户希望定位到(x,y)点,因此希望得到的反馈当然就是当前光标点的位置坐标。图6.1是另一个数值反馈的例子,当用鼠标交互式画矩形时,自动反馈显示出矩形的宽和高度。(6)方向性。在用鼠标器定位时,可以配合键盘上的Shift键,屏幕上的光标只能做水平或垂直移动。 第18页,共105页,2022年,5月20日,8点50分,星期日1.751.00图6.1 数值反馈第19页,共105页,2022年,5月20日,8点50分,星期日2选择 选择任务是指从一个被选集中挑选出一个元素来。在交互式图

16、形学中,选择绘图对象是为了对这些对象进行修改、删除等操作。常用的选择技术有命令选择、操作数选择、属性选择和对象选择等。选择集一般分为定长和变长两种。命令、属性和对象类型的选择集一般是定长的,而在作图过程中的绘图对象经常变化,所以绘图对象的选择属于变长集。适合固定集的选择技术包括:()指名技术:用键盘键入集合元素的名字、名字的缩写或元素的代码等选择一个元素或对象;()功能键:使用与集合元素相对应的功能键;()菜单技术:在菜单中选择菜单项;()模式识别:通过模式识别技术来选择符合要求的对象; 第20页,共105页,2022年,5月20日,8点50分,星期日适合变长集的选择技术包括指名和拾取两种技术

17、。(1) 用指名方式选择对象:要求用户知道各种对象的名字,特别是在屏幕上显示对象很多、互相遮挡重叠的情况时,用指名方式选择对象比拾取更快和准确。另外,可以使用匹配符*和?进行多个选择。指名方式的最佳反馈形式是在键入每一个字母后,立即显示所有能与当前已键入的字串匹配的对象名。这有两个好处,一是可以帮助用户回忆起对象的全名,而是在没有二义性的情况下,即只有一个对象名与已键入的字串匹配时,用户就可以停止键入剩下的字符了。例如,在对象集 polyline1,polyline2,polygon,cycle第21页,共105页,2022年,5月20日,8点50分,星期日中,用户希望选择对象polygon。

18、当输入p时,反馈显示3个元素polyline1,polyline2,polygon。直到键入polyg后,只显示唯一的元素polygon,这时用户就无需再继续输入剩下的字符了,确认后就唯一地选择了polygon对象。(2)拾取对象:将屏幕上的光标移动到被选择对象上,再按下鼠标左键,即指示要拾取这个对象。一般被拾取的对象会以不同的颜色显示,已表示被选中。可以结合实验课程,熟悉AUTOCAD中的指名和拾取绘图对象的方法。 第22页,共105页,2022年,5月20日,8点50分,星期日3文本输入文本输入任务是指应用程序输入一个字符串。如键入一个插图说明、一个标注等。文本输入最基本的技术就是标准键盘

19、,其次是菜单选择字符串和语音识别等。4定量输入定量输入任务是指在某个最小值和最大值之间指定一个数值,例如温度、时间、透明度等数值量的输入。典型的交互式定量技术有: 键盘输入数值; 调节电位器的阻值产生相应的数值; 用上下翻转数字的计数器选择数值; 用光标移动屏幕上的标度盘或刻度尺上的指针来确定数值。图6.2是常用的交互式定量输入的示例。交互式输入数值时,反馈的形式非常重要。一般是提供数字反馈,这在用户知道要输入的数值时很有用。另一形式的反馈是可度盘或标尺上的指针,指示数值的大概位置。第23页,共105页,2022年,5月20日,8点50分,星期日09018027045(a)(b)7654321

20、 (c) (d)图6.2 交互式定量输入第24页,共105页,2022年,5月20日,8点50分,星期日5定向技术 在指定的坐标系中确定形体的方向,此时需要有应用程序来确定其反馈类型、自由度和精度。6定路经技术 这是一系列定位和定向任务的结合,与时间、空间有关。第25页,共105页,2022年,5月20日,8点50分,星期日6.2.3 组合交互任务和技术 组合交互任务是由上述基本的交互任务组合而成的,主要有三种组合交互任务: 对话框:用来设定多个参数; 构造:用来构造需要两个或多个位置的形体; 操作:修改已有的几何形体的形状,调整物体之间的相对位置。第26页,共105页,2022年,5月20日

21、,8点50分,星期日1对话框 在交互过程中经常需要从一个选择集中选择多个元素,如字符属性有楷体、斜体、有粗体、细体,有空心字、实心体,有大小、对齐方式等。当弹出一张字符属性对话框后,如图6.3所示。用户可以从中选择多项,还可以在某些项输入用户希望的字符或数字。有些应用还希望从多个选择集中确定一组参数,如上面的字符属性中希望改变字符的颜色,这时还需要弹出一个色彩选择对话框,从中挑出用户希望的颜色。还有些应用要求对话框行、列设置滚动条。 对话框是用户与系统进行信息交流的窗口。当系统执行的某个命令需要更多的信息或数据时,就弹出一个对话框,向用户提问,由用户填写或选择对话框中的各项,作为回答。第27页

22、,共105页,2022年,5月20日,8点50分,星期日 对话框中常用的对象包括:列表框:列表框可以选择多个选项,提供滚动条,从中只能选择一项;下拉式列表:只能显示一个带下箭头的长方框,选择时可以通过按下箭头拉开列表以供选择。在下拉式列表中也只能选择一项。单选项:多个选项前面都有一个圆标识,每次只能选择其中的一项。被选中的选项前面的圆中间包含一个黑点。复选项:多个选项前面都有一个方框标识,可以从中选择多个选项,每次选中的选项前面的标识方框中包含一个差号。文字输入框:用于输入文本信息或数字。当光标移入输入框时,光标变成闪烁的竖条,等待用户输入。命令按钮:命令按钮用于启动一个可以执行的程序代码。一

23、般包括“确认”或“OK”,“取消”或“Cancel”,后跟省略号()的命令按钮将打开另一个对话框。第28页,共105页,2022年,5月20日,8点50分,星期日图6.3 列表框示例图下拉列表框复选框列表框命令按钮第29页,共105页,2022年,5月20日,8点50分,星期日2构造技术 我们把作图看成一个构造的过程,这个过程实际上是选择作图命令和指定一系列定位点的过程。例如在选择画直线命令后,在作图区先后指定两个点就可以在这两个点之间画出一条直线。常用的构造技术包括橡皮筋技术、约束技术等。 橡皮筋技术通常是在绘图过程中,可以使操作者能看到构造绘图的中间效果,并能够不断调整其位置和效果。例如,

24、用橡皮筋技术画直线段,首先用鼠标选择直线段的起点位置,然后移动鼠标,这时就在起点和鼠标当前点之间有一条连线,鼠标移动到不同位置,连线就连到什么位置,就像橡皮筋一样随光标移动。按下确认键,定下终点后,这条线段就确定下来了。利用橡皮筋技术可以实现用鼠标交互式画矩形、圆、椭圆、折线和多边性等图形。 第30页,共105页,2022年,5月20日,8点50分,星期日 约束技术分为水平约束、垂直约束和引力场约束三种。水平约束和垂直约束是为了画出水平和垂直的直线段。通过其它辅助键的配合(如Shift键),光标只能在水平和垂直方向移动,因此可以画出精确的水平线和垂直线。引力场约束技术可以帮助用户把光标点精确地

25、定位在某个端点或直线上。引力场是一种想象的约束场,一旦光标进入这个范围,它就被吸引到某个特殊点或直线上。例如,在选择圆心点、拾取直线图形等操作中,常用到引力场约束技术。 第31页,共105页,2022年,5月20日,8点50分,星期日3动态操作 动态操作包括:图形对象的拖动、旋转、缩放和形变等; 选择拖动命令后,首先在作图区用定位设备(如鼠标)拾取某个图形对象,再按住键移动光标,则这个被选中的图形对象就会随着光标的移动而移动。放开键后,图像对象就固定下来了。 选择旋转命令后,首先选择要旋转的图形对象,选中的图形对象中心将显示一个图标代表旋转的中心。用光标先将这个图标拖到实际的旋转中心,再按住定

26、位器的键移动光标,图形对象就会围绕旋转中心随光标的移动而旋转。 动态缩放操作与旋转操作大致相同,不同的是该操作需要确定缩放中心位置,移动光标,图形对象将以这个缩放中心为基准进行缩小或放大。 第32页,共105页,2022年,5月20日,8点50分,星期日 形变技术通常采用操作柄技术。操作柄在图形对象被拾取后显示出来,通常用小方块表示。如图6.4所示。(a)(b)图6.4 操作柄技术的形变 第33页,共105页,2022年,5月20日,8点50分,星期日 在多边形各顶点上有一个操作柄,当拖动某个操作柄到新的定位点时,相邻两条边变成橡皮筋,以相邻两个端点为固定点随光标的移动而被拉伸。如图6.4所示

27、,(a)为选中图形对象后显示的操作柄,(b)图为拖动一个操作柄后的橡皮筋显示所产生的形变。第34页,共105页,2022年,5月20日,8点50分,星期日6.2.4 拾取图形 拾取图形是交互式用户接口重要的任务之一。在交互式图形系统的增、删、改操作中,都是以拾取图形、或以拾取图形的某一位置为基础的。从屏幕上拾取一个图形,其直观现象是该图形变颜色、或闪烁、或增亮,其实际意义是要在存储用户图形的数据结构中找到存放该图形的几何参数及其属性的地址,以便对该图形作进一步的操作,如修改其几何参数、连接关系或某些属性。第35页,共105页,2022年,5月20日,8点50分,星期日1点拾取 对于屏幕上的一点

28、P1(x1,y1),该点的显示领域是以该点为圆心,r为半径的一个圆形区域,r是交互系统设定的领域精度。如果定位器定位点P0(x0,y0),且 (x1-x0)2+(y1,y0)2r2 说明定位点P0在P1点的显示领域内,即可拾取P1点。2字符集的拾取 依次判断符号集中的每个符号参考点的显示领域是否包含了拾取点,如该图素的某个符号参考点满足点拾取条件,则对该图素拾取成功。第36页,共105页,2022年,5月20日,8点50分,星期日3直线段的拾取P1P2royx图6.5 直线段的拾取领域 设直线段的端点为P1(x1,y1)和P2(x2,y2),该线段的显示领域为一个矩形区域,如图6.5所示。P1

29、P2的直线方程为: (y1- y2) x-( x1- x2) y- x1 (y1- y2)+ y1 (x1- x2) =0 直线的斜率为 y2- y1K= ,(x2- x10) x2- x1 当定位器定位点P0落在该矩形内,则表示 直线段拾取成功。第37页,共105页,2022年,5月20日,8点50分,星期日4折线集的拾取 依次判断每条直线段的显示领域是否包含拾取点,如该图素的某一条线段满足拾取条件,则对该图素拾取成功。5曲线的拾取 曲线在显示时输出时,已离散成折线集,故曲线拾取算法与折线集拾取算法类似。6字符串的拾取 需要依次判断每个字符的显示领域是否包含了拾取点。第38页,共105页,2

30、022年,5月20日,8点50分,星期日6.3 输入控制 图形软件包一般向用户提供三种基本的输入控制方式:请求方式、采样方式和事件驱动方式。可以用如下的命令设置一个输入设备的输入控制方式: set_locator_mode(ws,device_code,input_mode) 其中,ws是工作站的标识号,device_code是用来指定被采用的物理定位设备的设备码,input_mode对应请求、取样和事件三种输入控制方式之一。第39页,共105页,2022年,5月20日,8点50分,星期日6.3.1 请求输入方式 请求输入方式按照以下步骤工作:(1)应用程序向输入设备发出输入请求命令。例如,希

31、望从定位器中获得一个定位坐标时,可用如下请求命令: request_locator(ws,device_code,x,y) 该命令是把定位器设置成请求输入控制方式,其中x、y用来存储一个点的坐标值。(2)等待用户输入数据;(3)用户开始输入操作,如移动鼠标到定位点,再按确认键;(4)在用户输入操作完成后,应用程序得到输入数据,即定位点的坐标(x,y)。 请求输入方式一次只能对一个输入设备进行操作,而且只支持那些由RS-232端口联到计算机上的老式图形终端或其它交互设备。第40页,共105页,2022年,5月20日,8点50分,星期日6.3.2 取样输入方式 一个输入设备一旦设置成取样输入方式,

32、立即就可以进行数据输入,而不必等待程序中的输入语句。例如,操纵杆设置成灾取样方式下的定位设备,则操纵杆的当前位置坐标立即就被存储起来,如果操纵杆的位置发生变化,就立即用当前的坐标来代替以前的位置坐标值。设置定位设备为取样方式的命令是: sample_locator(ws,device_code,x,y) 取样方式允许用户同时使用多个设备。设备设置成取样方式后,应用程序按一定的周期反复测试输入设备,随时读取数据,所以应用程序可以对用户的动作给出及时地反馈。这是取样方式的好处。第41页,共105页,2022年,5月20日,8点50分,星期日6.3.3 事件输入方式 在事件输入方式中,输入设备与应用

33、程序是异步的。应用程序先将输入设备置成事件方式,并允许由设备输入。一旦设备是可输入的,不管应用程序是否准备好接收数据,用户都可以在这个输入设备上进行输入操作了。任何一个输入操作的数据都将作为事件按其发生的次序被送到一个输入队列中。应用程序随时可以检查这个输入队列,处理队列中的事件,或删除队列中的事件。有数据就处理,无数据就等待,即应用程序和输入设备各自独立地进行,输入设备可以随时输入数据,并保存在输入队列中,而应用程序不断地检查输入队列,一旦有输入数据就进行相应的处理。事件输入方式避免了请求方式和取样方式中存在输入数据丢失的问题。第42页,共105页,2022年,5月20日,8点50分,星期日

34、 在输入队列中的数据可按照逻辑设备类型、工作站号、物理设备编码进行检索。在应用程序中,检索事件输入队列可用下述命令: await_event(time, device_class, ws, device_code) 其中,time是应用程序设置的最长等待时间。当事件队列为空时,事件处理进程就挂起,直到最长等待时间已过或又有一个事件进入,才恢复事件的处理。若在输入数据之前,等待时间就已过去,则参数device_class就返回一个空值。当time被赋成零或当队列为空,程序就立即返回到其它的处理进程。 当用await_event命令使某个设备进入事件输入控制方式,而且事件队列为非空时,在队列的第一

35、个事件就被传送到当前事件记录中,对于定位器、笔划设备,在device_class参数中存放了它们的类型。为了从当前事件记录中检索一个输入的数据,还需要采用一个事件输入方式命令,其格式类似于请求、取样方式的命令,但在命令中不需要有工作站和设备码参数,因为在数据记录中已有这些参数。用户可用下述命令从当前事件中得到一个定位数据: get_locator(x,y)第43页,共105页,2022年,5月20日,8点50分,星期日 下面是一段程序用await_event、get_locator命令从1 号工作站的图形输入板上输入一个点集,并用直线段连接这些点。 Set_stroke_mode(1,2,ev

36、ent); If (device_class=stroke) Await_event(60,device_class,ws,device_code); get_stroke(n,xa,ya); polyline(n,xa,ya); 这里的IF条件循环是为了把从其它设备来的在队列中的数据滤掉。设置等待时间为1分钟,以保证输入数据接收完毕。如果在事件方式下只有这台图形输入板处于激活状态,那么这个IF条件循环就不必要了。第44页,共105页,2022年,5月20日,8点50分,星期日 在事件方式下,同时可应用多台输入设备以便加快交互处理。下面的程序是从键盘输入属性和图形输入板输入数据画折线。 set

37、_polyline_index(1); set_stroke_mode(1,2,event); /*把图形输入板设置成笔划设备*/ set_choice_mode(1,7,event); /*把键盘设置成选择设备*/ do await_event(60,device_class,ws,device_code); 第45页,共105页,2022年,5月20日,8点50分,星期日if (device_class =choice) then get_choice(option); set_polyline_index(option); elseif (device_class = stroke) t

38、hen get_stroke(n,xa,ya); polyline(n,xa,ya); while(device_class) 在此例程序中,通过将device_class设置成空来终止此过程。若等待1分钟,还没有新事件进入事件队列,即会发生终止的情况。 第46页,共105页,2022年,5月20日,8点50分,星期日6.4 用户接口的设计 交互式图形系统重要的是为操作者提供方便的用户接口。用户接口的设计目标包括:(1) 提高学习速度,即操作者熟练掌握图形交互系统的使用方法所花费的时间。(2)提高使用速度,即提供高效的交互式技术,如橡皮筋技术、菜单技术、快捷键技术等。(3)降低操作失误率。操作

39、失误率是指每次交互操作的平均失误率。(4)增强记忆,可以采用对话框、信息反馈等技术提示命令的参数和形式。(5)增强对潜在用户的吸引力,这是抢占市场方面的一个目标。 构造一个交互式系统涉及到用户接口的表现形式、工作方式、用户命令集的描述、人-机对话序列的设计、用户接口的描述、交互式过程的驱动方式等内容。本节对这些内容进行讨论。第47页,共105页,2022年,5月20日,8点50分,星期日6.4.1 用户接口的表现形式 用户接口的表现形式包括屏幕的布局、显示内容、符号选用、网格划分、颜色选择等多方面的内容,每个方面都有一些经验和准则可以参考,按照一定的准则去设计表现形式,可以比较容易地建立和维护

40、数据的表示与显示的一致性。 1屏幕的划分 显示屏幕又不同的大小、格式和分辨率,要合理、充分地利用屏幕,必须对屏幕作适当的划分,一般包括菜单栏、工具栏、绘图区、属性区、命令提示区等。绘图区尽可能大,其它内容要使用方便合理。屏幕的划分有对称型和不对称型两种。交互式图形系统常采用不对称布局方式。图6.6是Autocad的用户界面。第48页,共105页,2022年,5月20日,8点50分,星期日 图6.6 autocad的用户界面 第49页,共105页,2022年,5月20日,8点50分,星期日 2字型的选用 字型选用得好可以给界面带来生气。无论是英文还是中文都可以利用不同的字体,建立起一种层次关系,

41、标题、子标题常用黑体字,已达到清晰、简单、醒目,而文本要易于阅读,大面积地使用黑体字会降低可读性。同时,还要考虑字符的大小、排列、对齐方式等。 3颜色和灰度的选择 用不同的颜色和灰度表识信息、分离不同的形体、减少错误是非常有效的。实践表明对颜色和灰度的选择应考虑以下几个因素:(1)避免同时使用光谱边缘上的颜色;(2)字符、细线、小物体应避免用蓝色;(3)避免仅用蓝色的饱和度来区分颜色;(4)老年用户需要用较强的亮度才能识别颜色;(5)颜色效果与周围环境的色彩有关;(6)避免红、绿色同时使用。第50页,共105页,2022年,5月20日,8点50分,星期日 4系统的开启 系统的开始的启动信息使用

42、户使用系统的第一印象。对不同的用户应有不同的开启信息,生疏的用户要求步骤详细、提示信息丰富。熟练用户则要求命令、提示信息简洁、出入系统迅速。 5窗口系统 目前,个人计算机和工作站都提供了窗口系统,大多数的应用程序也都是以窗口系统为基础。窗口通常为矩形窗口,设计应用程序时要考虑窗口的大小、边界、多窗口的排列、窗口的刷新等问题。窗口及其管理系统已逐渐成为一个专门的课题,它是将常用的交互技术融为一体的综合应用环境,包括菜单、对话框、工具栏、图标等交互式对象。第51页,共105页,2022年,5月20日,8点50分,星期日 6菜单 菜单是一组功能、对象、数据或其它用户可选择实体的列表。按照菜单的出现与

43、消失方式可以分为以下几种形式:(1)固定式:固定式一般适用于静态菜单,它自始自终显示在屏幕的某一固定区域,一般位于屏幕的上部,用作系统的主菜单;(2)翻页式:菜单项按层次分页,进入一层菜单就像翻过一页书;(3)拉帘式:用户可象拉帘子一样拉出一个个菜单;(4)增长式:这种菜单的显示好像是慢慢长出来似的;(5)弹出式:一般是按下鼠标右键,在屏幕上弹出一个菜单。弹出式菜单一般可以放在屏幕的不同位置,因此也称为浮动菜单。 7图符和光标 在用户界面上使用不同的图符和光标,是用户接口更为形象,操作更为方便。例如,用铅笔图符表示临时性的写和画,钢笔光标表示永久性的操作,文件夹表示文档的管理,手指图符表示定位

44、和方向等。图符和光标常用作工具栏、快捷键的图标(icon)。第52页,共105页,2022年,5月20日,8点50分,星期日6.4.2 用户接口的设计原则 在设计用户接口时,应遵循以下设计原则: 1保持一致性 保持交互系统的一致性是指在设计系统的各个环节时,应遵从统一的、简单的规则,保证不出现里外和特殊情况。保持一致性的目的是能让用户有系统某个方面的知识推广到其它方面,以便于用户快速学习和熟练掌握。用户接口输入部分的一致性包括:键盘功能键,全程命令和常用命令,它们的功能在整个系统内应当一致。输出部分的一致性包括:使用的图符和颜色、状态信息的位置、菜单位置等。 2提供反馈 反馈诗人-机交互的一部

45、分,设计用户接口时必须考虑到各种反馈,并在程序中实现。根据设计过程中的功能设计、顺序设计(语法)和联结设计(词法)的三个步骤,可以给出三级反馈。设计人员必须有意识地考虑到每一级,并明确地决定是否提供反馈,以何种形式给出反馈。第53页,共105页,2022年,5月20日,8点50分,星期日 (1)最低级的反馈。对应于联结设计,用户在交互设备上的每个动作都应立即产生明显的反馈。如在键盘上键入字符时应在屏幕上回显,鼠标器的移动应对应于光标的运动。 (2)二级反馈。对应于顺序设计,当系统接受输入语言(命令、位置、操作对象等)中的每个词组时,应提供反馈,被拾取的物体或被选中的菜单项要着重显示,使用户知道

46、他的动作已被接受。 (3)功能级反馈。对应于功能设计,这是最有用且最受用户欢迎的一种反馈方式。它告诉用户所发出的命令已经执行完毕。通常是将操作结果显示出来。在执行某个费时的操作时的操作时,要给出某种反馈,例如进度条、百分数等,表明计算机仍在执行中,并且使用户知道大约何时能够执行完这个命令。第54页,共105页,2022年,5月20日,8点50分,星期日 3尽量减少失误 要尽可能地减少用户的操作失误,为此,要注意两点:一是使系统只提供当前有效的菜单命令,引导用户只在有效的范围内工作,不让用户做不能做或不允许做的事;二是尽量避免副作用,不要产生用户不期望的结果。设计时考虑不全、与用户交流不充分往往

47、会产生副作用。第55页,共105页,2022年,5月20日,8点50分,星期日 4提供出错恢复机制 有四种出错时的恢复方法,即复原(Undo)、中止(Abort)、取消(Cancel)和校正(Correct)。 当用户错误地执行一个或多个命令,得到一个预料之外的结果时,就需要使用“复原”命令恢复到执行的状态。复原又分为单级复原和多级复原两种。单级复原只恢复到上一个命令执行前的状态。如果单级复原命令之后紧接着再执行一次“复原”命令的话,就等于没有做恢复工作。多级复原是在前面之行过的命令栈上进行操作。执行过的命令都存入栈中,根据栈里存放的命令逐一作恢复工作。对应于多级复原,还配备一个“重做(Red

48、o)”操作,把复原以后的状态通过“重做”再恢复过来。 第56页,共105页,2022年,5月20日,8点50分,星期日 中止(Abort)操作是在命令执行过程中,用户意识到出现了失误,这是就需要“中止”命令来停止命令的继续执行。“中止”命令也需要把系统恢复到命令执行前的状态,相当于被中止的操作没有执行。 取消(Cancel)是在用户为执行某个命令而输入所需要的参数时,会突然发现自己并不想执行这个命令,这是就需要“取消”这个命令,回到输入前的状态。 校正(Correct)是在用户输入参数时,往往会发现出现失误,这时用户总是希望能简单地把错误校正过来。例如,在文本输入时出现错误,可以使用Backs

49、pace键来删除错误,并重新输入。第57页,共105页,2022年,5月20日,8点50分,星期日 5面向多层次用户 交互式图形系统要面向各种层次的用户,使毫无经验的新手、经验不多的用户,直到熟练用户,都能找到适合自己的交互手段。使系统能容纳多层次用户的方法包括:提供加速键,增加提示信息、提供帮助信息和可扩展功能,以及隐藏复杂功能等。 6尽量减少记忆的内容 要尽量减少让用户记忆的内容。例如,在绘图系统中,用数字代号表示形体,而不要用名字。拾取形体或图形使用交互式手段,而不需要记忆形体的信息。第58页,共105页,2022年,5月20日,8点50分,星期日6.5 交互式技术工具箱 用户接口的外观

50、和给人的感觉很大程度上取决于它们所使用的各种交互技术。设计和实现一组好的交互技术不是一件容易的事情,在6.1节介绍了三种用户接口的常用形式,即子程序库、专用语言和交互命令。在这一节主要介绍三种交互技术实现工具箱,即用户接口子程序库、资源描述语言和资源编辑器。用交互技术工具箱,可以实现统一的外观、统一的交互风格,可以节省编程时间。第59页,共105页,2022年,5月20日,8点50分,星期日 1用户接口子程序库 用户接口子程序库是为应用程序设计者提供的,专门用来设计各种交互技术的子程序集。每个窗口系统都提供了用户接口子程序库,常用的用户接口子程序工具箱有:Andraw窗口管理系统工具箱,Mac

51、intosh工具箱,Ms-Windows工具箱,X窗口系统的OSF/Motif和InterView工具箱,在X和News两个窗口系统上实现的OpenLook工具箱和SunView窗口系统工具箱等。 工具箱中的子程序不仅可以有应用程序调用,也可以在窗口管理系统中调用。在多个应用程序中使用同一个工具箱,就可以保证应用程序、窗口管理系统的外观和交互风格相一致。例如,对话框的第60页,共105页,2022年,5月20日,8点50分,星期日 外观、布局、颜色,文字的输入域、列表框等,在各个应用程序之间都具有相同的风格。 以下是利用SunView工具箱编写的一段程序,用于在一个窗口上建立一个命令按钮。 f

52、rame=(Frame) xv_create(NULL, FRAME, /*指明生成一个对话框的框架*/ WIN_SHOW, TRUE, FRAME_LABEL, “Sample”, /*框架的标题*/ XV_WIDTH, 200, /*框架的宽度*/ XV_HEIGHT, 100, /*框架的高度*/ NULL); panel=(Panel) xv_create(frame, PANEL, /*在frame框架上生成一个对话板panel*/ NULL);第61页,共105页,2022年,5月20日,8点50分,星期日 (void) xv_create(panel,PANEL_BUTTON,

53、/*在panel板上生成一个按钮*/PANEL_LABEL_STRING, “Quit” , /*按钮的名字串为Quit*/PANEL_NOTIFY_PROC, quit_proc, /*执行的程序过程为quit_proc*/NULL); SampleQuit图6.7 一个只含Quit按钮的对话框 第62页,共105页,2022年,5月20日,8点50分,星期日 2资源描述语言 MS-Windows用资源描述语言定义对话框或菜单。资源描述语言中的语句对每一个资源命名,并加以描述。资源描述文件的扩展名为.RC,资源编译器RC将资源描述文件编译成资源代码文件(扩展名为.RES),再将这个资源代码文

54、件加入到应用程序的可执行代码中去,最后的可执行程序(扩展名为.exe)就是完整的用户接口应用程序,不仅包括了对话框、菜单等用户界面,而且也包含了应用程序的功能。第63页,共105页,2022年,5月20日,8点50分,星期日 3资源编辑器 编写用户接口一种更好的办法就是使用资源编辑器。资源编辑器是一种可视化的界面设计,可以使用资源编辑器交互地设计出对话框、菜单的布局,然后再转换成程序代码,与应用程序联结成可运行的目标代码。使用资源编辑器,不需要任何编程技能就可以很容易地设计较好的用户接口。在第3章中,我们介绍了VC+中菜单资源编辑器的使用及程序设计,另外还包括对话框编辑器、工具栏编辑器、图形编

55、辑器、资源符号编辑器等。第64页,共105页,2022年,5月20日,8点50分,星期日6.6 交互式技术程序设计与实验实验目的:了解常用的图形交互技术及实现方法,学习用户接口的程序设计。实验内容: 1学习VC+菜单资源编辑器,菜单程序设计举例; 2学习Autocad绘图的基本方法,了解常用的交互式技术; 3学习OpenGL图形子程序库,编写高级的图形程序。 第65页,共105页,2022年,5月20日,8点50分,星期日6.6.1 菜单程序设计 在第3章中已经介绍了利用VC+进行菜单程序设计,而在第4章讲述了基本图形的生成算法和程序设计。在这一节,我们将通过一个实例将绘图命令放在用户界面的菜

56、单中,通过选择绘图命令来绘图。 步骤1:创建jhs应用程序工程文件,选择单文档应程序; 步骤2:利用Resource View设计菜单,如图6-8所示;第66页,共105页,2022年,5月20日,8点50分,星期日图6-8 菜单设计示例第67页,共105页,2022年,5月20日,8点50分,星期日菜单选项绘图(&P)Pop-up=Checked菜单项ID值提示(Prompt)直线m_line两点直线圆m_circle画圆,圆心和半径椭圆m_ellipse绘制椭圆矩形m_rectangle绘制矩形第68页,共105页,2022年,5月20日,8点50分,星期日步骤3:在CMymenuView

57、视图类中添加消息映射函数;对象消息函数m_lineCOMMANDOnMLinem_circleCOMMANDOnMCirclem_ellipseCOMMANDOnMEllipsem_rectangleCOMMANDOnMRectangle第69页,共105页,2022年,5月20日,8点50分,星期日 添加方法:选择ViewClassWizard菜单项,弹出如图3-19所示的创建类对话框,从中选择工程名(Projects)和类名(Class name),并从Object IDs列表框中选择m_line项,在Messages列表框中选择COMMAND,然后,单击“Add Function”按钮,

58、弹出加入成员函数的对话框,输入成员函数名OnMLine,确定后就添加了OnMLine消息映射函数。 参照以上方法,添加上表中其他的函数。 步骤4:绘制直线 按照第4章实验一任务三的步骤,实现交互式绘直线; 按照第4章实验二,实现交互式画圆; 但需要做如下的修改:(1)加入成员变量m_item,用于表示绘图选择项, proctected : int m_item ; / 0:不绘图,1:直线,2:圆,3:椭圆,4:矩形;第70页,共105页,2022年,5月20日,8点50分,星期日 (2)在构造函数中初始化变量; CJhsView:CJhsView() / TODO: add construc

59、tion code here /画直线的初始化参数 m_p1.x=0; m_p1.y=0; /起点 m_p2.x=0; m_p2.y=0; /终点 m_ist=0; /0,第1点;1,第2点; m_item=0; /0:不绘图,1:直线,2:圆,3:椭圆,4:矩形 / m_bO.x=0; m_bO.y=0; /圆心 m_bR.x=0; m_bR.y=0; /圆上的点 / m_ist=0; /圆心与圆上的点区别 m_r=0; /圆的半径 第71页,共105页,2022年,5月20日,8点50分,星期日 (3)添加菜单驱动函数:方法是右击CjhsView类,选择消息 映射函数(add window

60、 message handler)。在弹出的对话框中的class or object to handle列表中选择m_ine,按下“add and edit”,并在弹出的对话框中输入菜单驱动函数的名字(OnMLine),按下“确定”键。同理,建立画圆的菜单驱动程序OnMCircle。 void CJhsView:OnMLine() / TODO: Add your command handler code here m_item=1; void CJhsView:OnMCircle() / TODO: Add your command handler code here m_item=2; 第

温馨提示

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

评论

0/150

提交评论