文档介绍:第9章图形用户界面和交互输入方法 Interactive Input Methods & Graphical User Interfaces
逻辑交互输入设备(Logical Interactive Input Device)
基本交互任务与技术
组合交互任务与技术
OpenGL支持交互输入设备的函数
OpenGL菜单功能函数
图形数据的输入
图形程序的多种输入数据,例如:
坐标位置的数值,属性值,几何变换的参数值,观察参数,光照参数……
交互式输入
输入过程与窗口管理器、相应的硬件设备进行交互。
图形软件包中输入功能的逻辑分类
将输入功能按照其处理的数据类型进行分类
如定位、笔画、字符串、定值、选择、拾取
交互输入设备的逻辑分类(六类)
定位设备(Locator Device)——输入(指定)一个坐标位置。
有多种方式:
绝对:如数字化仪、触摸屏……
相对:如鼠标、轨迹球、操纵杆……
连续:如数字化仪、鼠标、操纵杆……
离散:如键盘上的光标控制键……
直接:如触摸屏、光笔……
间接:如鼠标、操纵杆……
交互输入设备的逻辑分类——六类
笔划设备(Stroke Device)——用于输入一系列坐标位置。
对应的物理设备如数字化仪、鼠标、轨迹球……
字符串设备(String Device)
如键盘、手写体识别输入设备……
定值设备(Valuator Device)——向图形系统输入用于设置图形参数或与特定应用相关的物理参数的数值,实现定值或取值功能。
如键盘的数字键、图形显示器上显示的标尺、刻度盘、按钮等辅助工具,数字化仪、鼠标等设备。
交互输入设备的逻辑分类——六类
选择设备(Choice Device)——从一个选择集中挑选出一个元素。
如鼠标,键盘功能键,被应用程序定义为功能键的任意键、定位设备。
拾取设备(Pick Device)——拾取屏幕上的一些图形对象,以便进行进一步的操作。
可用定位设备移动光标到要拾取的图形对象附近,按下拾取键,系统根据一定的拾取算法实现拾取任务。
基本的拾取技术:光标定位、拾取窗口
基本交互任务与技术
▲基本交互任务——用户输入到计算机的具有明确意义的最小信息单元。有四种:定位、文本、选择、取值。
定位任务(Position)——向应用程序输入点的位置。
两类:空间(Spatial)定位任务
语言或语义(Linguistic)定位任务
使定位更加准确、方便的辅助技术:
网格(Grid)
引力场(Gravity Field)
标尺(Ruler)
导向线(Guide Line)
基本交互任务
文本任务(Text)——向应用程序输入一个字符串。
如向字处理软件输入文本是文本任务,而输入一个命令名不是文本任务而是选择任务。
选择任务(Select)——从一个选择集(命令、属性、对象类型、对象实例)中挑选出一个元素。
相对定长选择集的选择技术:菜单选择技术;
变长选择集的选择技术:按名字选择、按位置选择。
取值任务(Quantify)——在某最小值与最大值之间指定一个数值。
组合交互任务与技术
▲组合交互任务——基本交互任务组合构成的信息输入单元,主要有三种:
构造技术(Construction Technique):构造需要两个或多个定位的对象。如一个作图过程
常用构造技术:
拖曳(Drag)、约束(Constraint)、网格(Grid)、橡皮筋(Rubber-Band)、引力场(Gravity field)…
对话框(Dialogue Box):指定多个参数。
动态控制(Dynamic Manipulation):修改已生成的图形对象。
OpenGL支持交互式输入任务
OpenGL具有菜单功能
GLUT鼠标函数/子程序
…
void mouseFunc (GLint button, GLint action, GLint xMouse, Glint yMouse); //鼠标回调函数。button=GLUT_LEFT_BUTTON/GLUT_MIDDLE_BUTTON/GLUT_RIGHT_BUTTON
action=GLUT_DOWN/GLUT_UP
(xMouse, yMouse): 鼠标光标相对于窗口左上角的位置坐标
…
glutMouseFunc (mouseFunc); //指定当鼠标光标在窗口内,并且鼠标按键按下或松开时,调用的函数
…
GLUT鼠标函数/子程序
…
void funcDoSomething (GLint xMouse, Glint yMouse);
…
glutMotionFunc (funcDoSomething); //指定当鼠标光标移动并且一个或多个鼠标按键按下时调用的鼠标回调函数
…
glutPa