资源预览内容
第1页 / 共39页
第2页 / 共39页
第3页 / 共39页
第4页 / 共39页
第5页 / 共39页
第6页 / 共39页
第7页 / 共39页
第8页 / 共39页
第9页 / 共39页
第10页 / 共39页
亲,该文档总共39页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
1第三章 用户接口与交互式技术o 用户接口设计o 逻辑输入设备与输入处理o 交互式绘图技术o OpenGL实现橡皮筋技术o OpenGL实现拾取操作o OpenGL中的菜单功能23.1 用户接口设计o 一个好的图形用户接口应具备以下特点:n 易于被用户理解并接受;n 易于操作、使用;n 高效率、可靠性和实用性。3用户模型o 用户模型(User Mode)是用户接口设计的基础,它提供给用户有关它所处理的对象以及作用于这些对象的处理过程的一个概念性模型。o 用户模型依照定义对象和对对象进行的操作来定义图形系统。o 用户模型应尽可能地使用用户熟悉的概念而回避一些计算机专业术语。4显示屏幕的有效利用o 信息显示的布局合理性o 充分而又正确地使用图符o 恰当地使用各种显示方法进行选择性的信息显示5反馈o 反馈是计算机与用户对话的一个基本成分,用 来帮助用户对系统进行操作。o 反馈要求系统在接收到每次输入以后给出某种 类型的反应。o 反馈信息通常应足够简捷清晰,引人注目,但 这些信息也不能过分突出,以至于干扰用户的 注意力。o 实现反馈必须考虑的因素是速度。6一致性原则o 一致性原则是指在设计系统的各个环节时,应遵从统一和简单的规则,保证不出现例外和特殊的情况,无论信息显示还是命令输入都应如此。o 按用户认为最正常、最合乎逻辑的方式去做,这比保持单纯的一致性更重要。7减少记忆量o 用户接口的操作应该组织得容易理解和记忆。o 重要的原则是唤醒用户的识别而不是记忆。8回退和出错处理o 回退(Undo)机制,它指绘图系统允许用户沿着进行的操作步骤,一步步倒退,并删除已做的操作。o 对操作过程中的任何错误或失误,无论在何级别,都应有一定的改错、取消和修复措施。o 设计一些好的诊断程序和提供出错信息可帮助确定发生错误的原因。9联机帮助o 提供提示是帮助用户学习和使用的有效方式。o 联机帮助(On Line Help)能在用户操作过程中的任何时刻提供请求帮助。10视觉效果设计o 视觉效果设计涉及用户接口的各个方面,如屏幕的布局、色彩的使用、信息的安排等等,这里强调的是色彩的使用。o 通常在选择色彩对比时以色调对比为主。o 为减轻视觉疲劳,还应该在视野范围内保持均匀的色彩明亮度。11适应不同的用户o 针对同一交互任务,交互式图形接口通常提供多种交互方式以适应不同的用户。123.2 逻辑输入设备与输入处理o 逻辑输入设备o 输入模式133.2.1逻辑输入设备o 图图形输输入设备设备 从逻辑逻辑 上分为为六种(PHIGS、GKS)。名称基本功能定位设备(Locator)指定一个点的坐标位置(x,y)笔划设备(Stroke)指定一系列点的坐标数值设备(Valuator )输入一个整数或实数字符串设备(String )输入一串字符选择设备(Choice)选择某个菜单项拾取设备(Pick)选择显示着的图形的组成部分表2.1 图形输入设备的逻辑分类14逻辑输入设备o 定位设备有鼠标器、操纵杆、跟踪球、空间球、数字化仪的触笔或手动光标等。o 定位设备的三种分类n 绝对坐标设备和相对坐标设备n 直接设备和间接设备n 连续设备和离散设备15逻辑输入设备o 笔划设备:笔划设备的输入等于多次调用定位设备,产生一系列的坐标值,根据产生的坐标值可产生多边形和曲线等。o 定值设备:定值设备常用来输入各种参数和数据。16逻辑输入设备o 字符串设备:即进行字符串输入。o 选择设备n 选择设备用来选择菜单选项、属性选项和用于构图的对象形状等。n 常用的选择设备有功能键、热键和定位设备等等。17逻辑输入设备拾取设备o 拾取设备:拾取设备用于选择场景中即将进行变换、编辑和处理的部分。o 方法n 利用定位设备冲突问题图2.1 定位设备拾取18逻辑输入设备拾取设备冲突问题的解决 在图形对象生成时就对每一个对象确定其拾取优先级。 依次对拾取图形设立标志。 找距离最近的对象优先拾取。图2.2 距离最近原则19逻辑输入设备拾取设备n 指定拾取窗口:拾取窗口是以光标位置为中心的一个矩形窗口。 图2.3 拾取窗口20逻辑输入设备拾取设备n 矩形包围。n 直接键入结构名字。 图2.4 矩形包围拾取21o 输输入模式即如何管理、控制多种输输入设备进设备进行工作。o 常用的输输入模式有请请求(request)、采样样(sample)、事件(event)及其组组合形式等几种。3.2.2输入模式22p 请请求方式(request mode):输输入设备设备 在应应用程序的控制下工作,程序在输输入请请求发发出后一直被置于等待状态态直到数据输输入。p 取样样方式(sample mode):此时时,应应用程序和输输入设备设备 同时时工作,当输输入设备设备 工作时时,存储输储输 入数据,并不断地更新当前数据,当程序要求输输入时时,程序采用当前数据值值。输入模式23p 事件方式(event mode):每次用户对输户对输 入 设备设备 的一次操作以及形成的数据叫做一个事件 。n 思想:一般一个事件发发生时时,往往来不及进进 行处处理,于是,就要把事件按先后次序排成 队队列,以便先进进先出,即先到的事件进进入排 队队,先被取出进进行处处理。n 当设备设备 被置成事件方式,程序和设备设备 同时时工 作。输入模式243.3 交互式绘图技术o 基本交互绘图技术o 三维交互技术253.3.1基本交互绘图技术o 回显图2.5 回显26基本交互绘图技术o 约束o 网格图2.6 约束和网格27基本交互绘图技术o 引力域o 橡皮筋技术图2.7 橡皮筋技术28基本交互绘图技术o 草拟技术图2.8 草拟技术(a) 沿光标标移动动路经经保留单单个点坐标标 (b) 用曲线拟线拟 合29基本交互绘图技术o 拖动图2.9 拖动技术(a) 两图图形对对象的初始位置 (b) 拖对对象进进行调调整 (c) 最终终的装配位置30基本交互绘图技术o 旋转图2.10 旋转技术31基本交互绘图技术o 形变图2.11 形变技术323.3.2三维交互技术o 三维图形数据的输入o 三维定位o 三维定向333.4 OpenGL实现橡皮筋技术o 橡皮筋技术的实现方法n 利用颜色的异或操作,对原有图形并不是擦除,而是再绘制一条同样的直线段并与原图形进行异或操作,此时原图形会从屏幕上消失;n 利用双缓存技术,绘制图形时分别绘制到两个缓存,交替显示。34OpenGL实现橡皮筋技术o 鼠标实现n 鼠标响应函数glutMouseFuncn 鼠标移动相应函数glutMotionFuncglutPassiveMotionFunc35OpenGL实现橡皮筋技术o 键盘实现n 键盘相应函数glutKeyboardFunc363.5 OpenGL实现拾取操作o 设置拾取缓冲区void glSelectBuffer(GLsizei n, GLunint *buff);o 进入选择模式GLint glRenderMode(GLenum mode);37OpenGL实现拾取操作o 名字堆栈操作n 初始化名字堆栈(glInitNames)n 将一个名字压入堆栈(glPushName)n 替换名字堆栈的栈顶元素(glLoadName)n 将栈顶元素弹出(glPopName)38OpenGL实现拾取操作o 设置合适的变换过程gluPickMatrix(xPick, yPick, widthPick, heightPick, *vp);o 为每个图元分配名字并绘制o 切换回渲染模式o 分析选择缓冲区中的数据393.6 OpenGL中的菜单功能o 菜单注册函数glutCreateMenu(ProcessMenu);o 在菜单中加入菜单项void glutAddMenuEntry(char *name, GLint value);o 将菜单与某个鼠标按键关联void glutAttachMenu(button);
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号