计算机图形学,*,计算机科学与技术学院,交互技术汇总课件,第9章 交互技术,9.1 人机交互界面,9.2 交互技术,9.3 基于,OpenGL,的交互式绘图,第9章 交互技术9.1 人机交互界面,9.1,人机交互,界面,用户接口可分为两大类:一类为程序开发接口,一类为用户交互操作接口。,前者是专为程序开发人员提供的编程级接口,如子程序图形库,它以一种高级语言为基础,扩展实现图形设计和处理的过程或函数。,又如专用语言,其功能与子程序库类似,常用形式有解释执行和编译执行两种,目前Adobe公司的PostScript语言(页面描述语言)可以算作图形专用语言,在照排系统、出版系统中被广泛应用,,后者主要为一般用户进行图形系统的交换操作提供了一种系统处理机制和方法,如交互式命令。它实质上是一种用户接口模型。,9.1 人机交互界面 用户接口可分为两大类:一类为,9.1.1,用户接口模型,交互式用户接口是基于某种模型,在图形系统支持下以系统程序实现用户所需对图元的输入、选择、拾取、增、删、改等操作。目前为人们所普遍接受的用户接口模型是1983年IFIP工作小组在联邦德国的seeheim提出的seeheim模型:,9.1.1 用户接口模型 交互式用户接口是基于某,2,交互命令执行过程,下图为交互式命令在一个分层管理系统中的处理模型。模型由负责用户数据接收和操作系统及图形软件管理部分中负责相应输出信息显示,负责命令接收和显示处理的用户接口部分,即负责应用程序管理的应用核心部分组成。,2交互命令执行过程,9.1.2,信息输入控制方式,在复杂的运行环境中必须有一定的图形输入控制机制来有序地管理这些工作。这些管理机制支持用户指定以下选择:,图形程序和设备以何种交互式控制方式进行交互。,使用何种物理设备为特定逻辑功能提供输入。,何时输入数据。,图形输入控制方式有:请求(Request)、取样(Sample)、事件(Event)及其组合。对三种输入控制方式都可定义相应的输入命令,而且图形交互系统允许对每种逻辑设备执行相应的输入操作。,9.1.2信息输入控制方式,1,请求方式,在请求方式下,只有输入设置命令对相应的设备设置所需要的输入方式后,作相应的输入处理。应用程序和输入设备轮流处于工作状态和等待状态,由程序支配输入设备的启动。,程序工作,输入设备等待程序请求,遇到请求指令,输入设备工作,程序等待接收数据,请求满足,1 请求方式程序工作,输入设备等待程序请求遇到请求指令输入设,2,取样方式,在取样输入模式工作过程中,程序和输入设备同时运行。一旦对一台或多台设备设置了取样方式,立即就可以进行数据输入,而不必等待程序中的输入语句。输入设备不断地产生数据,并把数据输入数据缓冲区,从而不断用新数据覆盖缓冲区的旧内容。,2 取样方式,3,事件方式,在事件模式输入数据的过程中,输入设备和程序分别运行。输入设备所产生的数据被组织成事件结点,排入事件队列中等待程序的处理。程序运行到事件处理语句时,就从事件队列中检索出队列首事件予以处理。如果事件队列为空,程序则等待一定的时间,等待事件的发生。,3 事件方式,4,混合方式,三种数据输入模式体现了应用程序和用户进行通信的不同方式。在请求模式下,应用程序是输入操作的发起方,应用程序和用户之间的操作是串行的,相互间有明显的制约关系。取样方式则允许用户的输入操作和应用程序并发执行。事件模式是由用户万发起数据处理请求,强调了人机交互系统中入的主动性,大大增强了数据处理的并发性,提高了人机交互的效率。,现代计算机图形输入系统常常混合使用多种输入方式,即一个应用程序可以在几种输入方式下控制多种不同的输入设备,而不是单一地使用某种输入方式。,4 混合方式,9.2,交互技术,9.2.1,交互输入技术,交互技术是指使用输入设备完成交互任务的输入技术。下面介绍一些常用的基本交互输入技术,例如定位技术、选择技术、对话框技术等。,1 定位技术,使用定位输入设备完成数据的输入操作技术,主要用于实现图形元素的空间定位,即指定一个坐标。定位分为直接定位和间接定位,直接定位是指用定位设备直接在屏幕上制定一个位置点,间接定位是通过定位设备的运动控制屏幕上的映射光标进行定位。,9.2 交互技术 9.2.1 交互输入技术,2 选择技术,选择技术要求确定可选择集合的大小及选择值,这个集合可以是固定的,也可以是变长的。选择要求有拾取设备,如光笔或任何可以模拟拾取设备的定位设备。选择技术有以下几种:光笔选择,图形输入板或鼠标器控制光标选择,键入名字、名字缩写或排列的唯一序号作选择,用功能键作选择以及语音选择和笔划识别。,定长选择集操作主要有指名、功能键、模式识别和菜单等技术,变长选择集操作主要有有指名技术和指点技术(拾取图形或对象)两种技术。,1),菜单技术 常用于指定命令、确定操作对象、选定属性等多选一的场合,形象直观,操作方便。,2 选择技术,2),选择实体技术 在图形系统中,实体的选择是一种最常见的选择技术,它是实体编辑的基础。,选择技术主要有指名选择和图形拾取两种形式。,指名选择是指用户进行实体选择时,直接在键盘上输入被选实体的名称,然后选择实体。这种方法适合以下两种情况:,用户掌握实体的名称,用指名选择方式选择实体可能比拾取图形更快,特别是图形过大需要滚动翻屏或者缩放比例才能显示选择实体的操作更快。,显示的图形复杂相互重叠遮挡,用拾取图形的方法难以选择,键入实体名称进行实体选择不失为一种有效的选择方法。,2)选择实体技术 在图形系统中,实体的选择是一种,3 定向技术,定向即是在一个坐标系中规定形体的一个方向,此时需要确定坐标系的维数(即自由度)、分辨率、精度和反馈类型,需要的设备是数值器、定位器、键盘。,4 定路径技术,定路径即在一定的时间或一定的空间内,确定系列的定位点和方向角。虽然路径可以由定位和定向这两个更基本的交互任务组成,但由于定路径时要考虑现实世界中的一个重要参数时间,因此仍把它列为基本的交互任务。这时用户关心的不是某一点或方向,而是一系列的定位点和方向值及其次序。产生路径的技术与定位和定向一致。,3 定向技术,9.2.2,交互控制技术,1 构造技术,1),橡皮筋技术 橡皮筋技术主要针对变形类的要求,它可动态地、连续地将变形过程表现出来,直到产生用户满意的结果为止。常用的有橡皮筋有矩形橡皮筋、圆或圆弧橡皮筋、直线橡皮筋、折线橡皮筋、多边形橡皮筋等。,矩形橡皮筋,直线橡皮筋,圆橡皮筋,9.2.2 交互控制技术 1 构造技术 矩形橡皮筋直线橡皮,2)约束技术 约束技术借助几何约束条件和计算,在交互绘图的过程中达到精确定位和定向控制。定向控制即为方向约束,而精确定位即为栅格点约束。,方向约束 用户定位两个端点,应用程序判断两点所定义的直线画水平线还是垂直线,当水平方向约束时,终点不论光标移动到何处,只有x坐标有变化,而y坐标与始点相同。这样产生的直线段仍为水平直线。同理可得垂直约束的方法,P1,P2,P2,P1,P2,P2,水平方向约束,垂直方向约束,2)约束技术 约束技术借助几何约束条件和计算,在交互绘图的过,栅格点约束 在屏幕上按用户的要求,显示一网格(栅格),有时以小圆点的形式显示网格结点的位置,有时结点位置不显示,但对输入的不同点都用离它最近的一个网格点的位置坐标来代替。,网格点约束处理前,网格点约束处理后,栅格点约束 在屏幕上按用户的要求,显示一网格(栅格),有,3),引力场技术,如果在定位时使用引力场技术,则很容易使点与点重合实现准确定位。,引力场约束技术可以帮助用户把光标点精确地定位在某个端点或直线上,引力场是一种想象的约束范围,一旦光标进入这个范围,它就被吸引到这条直线上。,实现关键步骤有两个,一是找出直线上全部离散点并予以保存;二是跟踪欲画直线端点(起点或终点),判断端点是否落入规定场域内,若有,将落入场域内的点归入距该点最近的直线上的点。,3)引力场技术 如果在定位时使用引力场技术,则很容易使点与,2 动态控制技术,在构造出所需图形后,还可对其进行动态操作,如缩放、拖动、旋转以及形变等。,1),动态缩放图形 可对图形进行放大或缩小处理,以利于对图形进行编辑。动态缩放包括开窗放大、中心放大或缩小和全景显示等。,动态缩放图形主要解决两个问题,一个是缩放比例系数,二是确定缩放图形的定位点。,2)动态拖动 动态拖动技术是将形体在空间移动的过程动态地、连续地表示出来,直至满足用户的位置要求为止,,动态拖动技术主要采用图形变换的平移处理方法,动态拖动分为全图拖动和局部图形拖动。,2 动态控制技术,9.2.2,图形拾取技术,拾取图形是交互式用户接口中的重要任务之一。在交互式图形系统的增、删、改操作中,都是以拾取图形对象为基础的。,1 拾取图形基本方法,需要在一个分层的对象结构或虽不分层但很复杂的对象结构中拾取一个基本对象或一些基本对象的集合,然后对其施加某种操作。拾取一个基本对象可以通过一些方法来实现。,1),指定名称法 操作员可以通过指定拾取对象的名称来实现拾取。,9.2.2 图形拾取技术 拾取图形是交互式用户,2),定位点法 选择时让图形的特征点(如线段的端点、圆和圆心等)以强光醒目显示。,边界矩形法,定位点法,3),边界矩形法 为每个基本对象确定一个外接正矩形(其4条边分别平行于坐标轴),只要选中矩形内区域就表示拾取该对象。,2)定位点法 选择时让图形的特征点(如线段的端点,4),分类法 根据实体对象的形状结构将其进行分类,定义其分类编号,通过指定图形对象的分类编号和名称进行拾取,有助于减少计算量。,5),直接法 使用鼠标等交互操作设备,通过定义拾取框来拾取实体。在拾取图形时,只要图形和拾取框相交,就可以认为该图形对象被拾取。,分类法,直接法,4)分类法 根据实体对象的形状结构将其进行分类,2 拾取图形的条件,1),点拾取:若被拾取点P,o,(x,o,y,o),光标点P,1,(x,1,y,1),若(x,1,-x,o,),2,+(y,1,-y,o,),2,R,2,成立,则对P,o,拾取有效,2),直线段拾取,如图P,1,(x,1,y,1,)和P,2,(x,2,y,2,)为直线段,Po为拾取点。,若,Po,到直线段的距离小于,r,则,P,1,P,2,直,线段拾取有效,。,2 拾取图形的条件2)直线段拾取 若Po到直线段的,(3),区域拾取图形,利用区域进行多个图形的拾取,也可以拾取一个图形。,如图,该图中有圆、椭圆、折线和曲线,1)若拾取多个图形,判断图形是否完全,包含在拾取区域内。,计算方法是逐个计算图形的顶点是,否在拾取区域内,若在拾取有效,图中圆和折线有效。,2)若只拾取一个图形,当区域内有多个图形:,设定图形的优先选择级别,级别高者优先拾取;,逐个变色或增亮图形,由用户选择确定。,(3)区域拾取图形利用区域进行多个图形的拾取,也可以拾取一个,(4)加速图形拾取的措施,1),过滤器法:,设立标志,以区分拾取的图形和不拾取的图形。在处理图形拾取时,只对拾取的图形才进行拾取判断。例如设立不同的图层,用层名作为标志。,2),区域粗判法:,对拾取的图形先作其外接正矩形判断,若拾取点包含在该举行内,再作进一步判断,否则跳过该图形。,3),将基本图素的拾取算法固化,如直线、点的拾取算法。,(4)加速图形拾取的措施 1)过滤器法:,内容回顾:,作业:,1 人机交互界面,2 交互技术,1.认真阅读课文内容,2.基本交互技术包括那些技术?,3.图形拾取的方式有哪几种?,4.什么是橡皮筋和双缓存技术?二者有何关系?,5.什么是图元组?,6.几何约束主要包括哪几种约束?,内容回顾:作业:1 人机交互界面 1.认,本次课到此结束,再 见,本次课到此结束再 见,