OpenGL交互输入:从键盘与鼠标事件

需积分: 6 2 下载量 47 浏览量 更新于2024-08-02 收藏 342KB PPT 举报
"香港大学OpenGL课件英文版第五章——交互式输入" 在计算机图形学领域,OpenGL是一个广泛使用的图形库,用于创建二维和三维图像。本章内容主要围绕交互式输入,即用户如何通过键盘、鼠标等设备与图形界面进行交互。交互式输入是现代图形用户界面(GUI)和游戏开发中的核心要素。 1. 输入模式 输入模式分为请求模式(Request Mode)和事件模式(Event Mode)。这两种模式决定了程序如何响应用户的输入。 2. 请求模式(Request Mode) 在请求模式中,当程序请求获取输入时,它的执行会被挂起。直到数据准备好,程序才会被一个触发过程唤醒。例如,当一个运行在个人电脑上的程序请求从键盘获取字符输入时,程序执行暂停。当用户按下 'A'、'B'、'C' 和回车键时,这些字符会被保存在键盘缓冲区。只有当用户按下回车键时,程序才会被唤醒并处理这些输入。 程序示例: ```cpp char ch; do{ cin >> ch; cout << ch << "(" << (int)ch << ")\n"; }while(ch != '\n'); ``` 在这个例子中,如果输入 "blue",输出将会是 "red,green",其中回车符('\n')是不可见的,但程序会将其识别为结束输入的标志。 3. 事件模式(Event Mode) 事件模式主要用于图形界面和游戏开发。在这种模式下,程序的执行由事件处理机制驱动。当用户按下键盘键或点击鼠标按钮,一个事件通知会被添加到事件队列中。程序会持续检查这个队列,每当有新事件出现,就会相应地处理它。这样,程序可以实时响应用户的操作,提供更流畅的交互体验。 4. 键盘和鼠标输入 在OpenGL中,可以通过特定的函数来处理键盘和鼠标事件。例如,可以监听键盘事件来改变物体的位置、颜色或其他属性;监听鼠标事件来实现平移、缩放或旋转视图。 5. 弹出式菜单(Pop-up menu)和窗口重塑(Reshaping window) 弹出式菜单是GUI中常用的功能,允许用户在图形界面中选择不同的操作。而窗口重塑则涉及到窗口大小的改变,当用户调整窗口尺寸时,程序需要适当地更新渲染区域以适应新的窗口尺寸。 第五章介绍了OpenGL中处理用户交互的基本方法,包括请求模式和事件模式下的键盘、鼠标输入以及弹出式菜单和窗口重塑等重要概念。这些知识对于开发交互性强的图形应用至关重要。理解并熟练掌握这些内容,能够帮助开发者构建更加直观、响应迅速的图形界面。