OpenGL 的键盘控制 1、特殊键的按键消息 2、普通键的按键消息.

Slides:



Advertisements
Similar presentations
中秋节 作者:杨露. “ 团圆节 ” “ 秋暮夕月 ” 的习俗 中秋拜月 热爱中秋佳节 每年农历八月十五日,是传统的中秋佳节。 这时是一年秋季的中期,所以被称为中秋。在中 国的农历里,一年分为四季,每季又分为孟、仲、 季三个部分,因而中秋也称仲秋。八月十五的月 亮比其他几个月的满月更圆,更明亮,所以又叫.
Advertisements

教师队伍建设 组员:王英利 赵香媖 侯娟. 主讲内容 2. 中小学教师队伍建设 1. 职业教育师资队伍建设国际比较 3. 高校教师队伍建设与管理.
第二框 生命科技与生命伦理.
提 纲 三次考察与改革的回顾 1 学院三周来的新面貌 及下一步工作思路 2 凝心聚力、团结协作、狠抓落实 3.
——以通渭县图书馆青树小项目“携老上网游”为例
市民三小時免費上網線上教學 入門班.
我征服了黃山 林達的黃山之旅 2006春.
2013浙江省行测专题 密卷解析及备考冲刺 罗 姮.
第六课 师爱助我成长 我爱我师 导入 新课 进行 新课 练习 拓展.
第二节 留 数 一、留数的引入 二、利用留数求积分 三、在无穷远点的留数 四、典型例题 五、小结与思考.
第一章 C语言概述 计算机公共教学部.
第一章信託法 第一節 信託契約 第二節 信託財產 第三節 受益人 第四節 受託人 第五節 信託關係之消滅.
第三单元 单元写作学案 确立自信 学习反驳.
项目五——校园一卡通程序功能模块化设计 5-1项目显示查询和退出函数设计.
闲言碎语.
二十 石钟山记.
第三章 心理安全 广西师范大学 罗蕾.
第三章 鏈結串列 Linked List.
研究方向: 多媒体环境下课堂教学模式研究.
C语言实现俄罗斯方块 演示文稿.
圖書館新生導覽 圖書館使用秘笈~新鮮人篇 陳孟珠
第 5 章 流程控制 (一): 條件分支.
时间管理 -----高一团体辅导.
補充: Input from a text file
第一章 语言文字运用 专题五  挖掘隐含信息,准确实现图文转换.
前不久看到了这样一则报道:某个大学校园里,一个大学生出寝室要给室友留一张字条,告诉他钥匙放在哪里。可是“钥匙”两个字他不会写,就问了其他寝室的同学,问了好几个,谁也不会写,没办法,只好用“KEY”来代替了。 请大家就此事发表一下自己看法。
双字符键和大写锁定键.
学习目标: 1.了解键盘键位及功能 2.能以正确的坐姿和规范的指法录入中英文
第一课 计算机基础知识.
C++中的声音处理 在传统Turbo C环境中,如果想用C语言控制电脑发声,可以用Sound函数。在VC6.6环境中如果想控制电脑发声则采用Beep函数。原型为: Beep(频率,持续时间) , 单位毫秒 暂停程序执行使用Sleep函数 Sleep(持续时间), 单位毫秒 引用这两个函数时,必须包含头文件
第三章 控制结构.
利用共同供應契約 辦理大量訂購流程說明.
struct 可以在同一個名稱下擁有多種資料型態。使用struct能讓資料的存取和處理更為靈活。
走进编程 程序的顺序结构(二).
黃印良 本教材引用自 作者:Edward Lee
按键驱动 广州创龙电子科技有限公司 Guangzhou Tronlong Electronic Technology Co., Ltd.
五、链 表 1、单链表 2、双向链表 3、链表应用.
本章中將會更詳細地考慮有關重複的概念,並且會 介紹for和do…while等兩種用來控制重複的敘述 式。 也將會介紹switch多重選擇敘述式。 我們會討論直接和迅速離開某種控制敘述式的 break敘述式,以及用來跳過重複敘述式本體剩餘 部份的continue敘述式。 本章會討論用來組合控制條件的邏輯運算子,最後.
泛型委托 泛型接口、方法和委托.
VR – OpenGL 2D.
第七章 操作符重载 胡昊 南京大学计算机系软件所.
Page Down 跳頁 高等眾生不一定都住在天堂, 當你內心有愛、很單純、 有同情心,內心很平靜時, 你就是高等眾生了。 由 鄭福平.
第一节 大数定律 一、问题的引入 二、基本定理 三、典型例题 四、小结.
第1章 概述 本章要点: C语言程序结构和特点 C语言程序的基本符号与关键字 C语言程序的编辑及运行 学习方法建议:
然后按 F5 或单击“幻灯片放映”>“从头开始”以开始课程。 在消息栏中,单击“启用编辑”,
六、函数 教学目标: 函数的概念、定义、调用和返回 带自定义函数的程序设计 递推算法 递归思想及算法实现 函数的参数传递方式 C语言程序设计.
程式結構&語法.
本节内容 消息的分发 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第5章 文本与字体 2019/4/25 面向对象与可视化 程序设计 --Visual C++ 编程 主讲教师: 唐 龙教授 (计算机科学与技术系) 黄维通博士 (计算机与信息管理中心) 清 华 大 学 2001年2月 2019/4/25 Huang Weitong.
簡報重點.
本节内容 类成员的访问控制 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
GLUT 事件處理函式 靜宜大學資管系 蔡奇偉 副教授
<编程达人入门课程> 本节内容 为什么要使用变量? 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
第二章 Java语法基础.
生命教育 媒材應用分享 電影 天外奇蹟(UP) 華盛頓高中 巫孟容.
兒童及少年保護、 家庭暴力及性侵害事件、 高風險家庭 宣導與通報
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
本节内容 函数嵌套调用的内存布局 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第四章 函数 丘志杰 电子科技大学 计算机学院 软件学院.
第二章 Java基本语法 讲师:复凡.
本节内容 C语言的汇编表示 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第1章 数据结构基础概论 本章主要介绍以下内容 数据结构研究的主要内容 数据结构中涉及的基本概念 算法的概念、描述方法以及评价标准.
_01自己实现简单的消息处理框架模型 本节课讲师——void* 视频提供:昆山爱达人信息技术有限公司
C# 匿名委派 + Lambda + Func 建國科技大學 資管系 饒瑞佶.
靜宜大學專用 PowerPoint 檔案 數位教材
多重條件選擇敘述
PROGRAM 1 Simple E. Angel, Interactive Computer Graphics A Top-Down Approach with OpenGL, Third Edition Addison-Wesley Longman, 2003.
第三章 流程控制 程序的运行流程 选择结构语句 循环结构语句 主讲:李祥 时间:2015年10月.
小組製作人介紹 2 年 14 班 21 號 高嘉駿 2 年 14 班 20 號 林宏恩 2 年 14 班 14 號 林立仁.
Presentation transcript:

OpenGL 的键盘控制 1、特殊键的按键消息 2、普通键的按键消息

键盘控制: GLUT允许编写程序时,在里面加入键盘输入控制,包括了普通键,和其他特殊键(如F1,UP)。在这一章里我们将学习如何去检测哪个键被按下,可以从GLUT里得到些什么信息,和如何处理键盘输入。 

键盘控制: 处理按键消息,必须使用GLUT通知窗口系统,当某个键被按下时,哪个函数将完成所要求的操作。同样是调用一个函数注册相关的回调函数。

1、普通按键消息: 当按下一个键后,GLUT提供了两个函数为这个键盘消息注册回调。 一个是glutKeyboardFunc。这个函数是告诉窗口系统,哪一个函数将会被调用来处理普通按键消息。 普通键是指字母,数字,和其他可以用ASCII代码表示的键。 函数原型如下: void glutKeyboardFunc(void(*func)(unsigned char key,int x,int y)); 参数: func: 处理普通按键消息的函数的名称。如果传递NULL,则表示GLUT忽略普通按键消息。 这个作为glutKeyboardFunc函数参数的函数需要有三个形参。第一个表示按下的键的ASCII码,其余两个提供了,当键按下时当前的鼠标位置。鼠标位置是相对于当前客户窗口的左上角而言的。 

2、控制特殊键的按键消息 控制特殊键的按键消息。GLUT提供函数glutSpecialFunc以便当有特殊键按下的消息时,你能注册你的函数。 函数原型如下: void glutSpecialFunc(void (*func)(int key,int x,int y)); 参数: func: 处理特殊键按下消息的函数的名称。传递NULL则表示GLUT忽略特殊键消息。

实例1:旋转中的茶壶(特殊键的按键消息) Keyboard0

功能:上下左右箭头控制对象的旋转 主要回调函数: glutSpecialFunc 这个函数是控制特殊键的按键消息.GLUT提供函数glutSpecialFunc以便当有特殊键按下的消息时,能注册函数. 函数原型如下: void glutSpecialFunc(void (*func)(int key,int x,int y)); 参数: func: 处理特殊键按下消息的函数的名称.传递NULL则表示GLUT忽略特殊键消息.

实例1中的:glutSpecialFunc(mySpecial); void mySpecial (int k,int x,int y) { switch(k) case GLUT_KEY_UP: viewRotateX+=1.0; break; case GLUT_KEY_DOWN: viewRotateX-=1.0; case GLUT_KEY_LEFT: viewRotateY+=1.0; case GLUT_KEY_RIGHT: viewRotateY-=1.0; default: return; } // printf("viewRotateX:%6.3f,viewRotateY:%6.3f\n",viewRotateX,viewRotateY); glutPostRedisplay(); Keyboard0

实例2:键盘控制旋转、放大、缩小及退出。 Z,z控制Z轴;D,d控制大小;;Esc控制退出 Keyboard1

功能:(普通按键)键盘控制旋转、放大、缩小及退出 主要回调函数: glutKeyboardFunc 按下一个键后,GLUT提供了两个函数为这个键盘消息注册回调.其中一个是glutKeyboardFunc.这个函数是告诉窗口系统,哪一个函数将会被调用来处理普通按键消息. 普通键是指字母,数字,和其他可以用ASCII代码表示的键. 函数原型如下: void glutKeyboardFunc(void(*func)(unsigned char key,int x,int y)); 参数: func: 处理普通按键消息的函数的名称.如果传递NULL,则表示GLUT忽略普通按键消息. 这个作为glutKeyboardFunc函数参数的函数需要有三个形参.第一个表示按下的键的ASCII码,其余两个提供了,当键按下时当前的鼠标位置.鼠标位置是相对于当前客户窗口的左上角而言的.

实例1中的: glutKeyboardFunc(myKeyboard); //Z,z控制Z轴;D,d控制大小;;Esc控制退出 void myKeyboard(unsigned char k,int x,int y) { switch(k) case 'Z': viewRotateZ+=5.0; break; case 'z': viewRotateZ-=5.0; case 'D': viewDist+=1.0; case 'd': viewDist-=1.0;; case 27: exit(0); default: return; } glutPostRedisplay();

在glut.h里已经被预定义为常量。这组常量如下: GLUT_KEY_F1               F1 function key GLUT_KEY_F2               F2 function key GLUT_KEY_F3               F3 function key GLUT_KEY_F4               F4 function key GLUT_KEY_F5               F5 function key GLUT_KEY_F6               F6 function key GLUT_KEY_F7               F7 function key GLUT_KEY_F8               F8 function key GLUT_KEY_F9               F9 function key  GLUT_KEY_F10              F10 function key GLUT_KEY_F11              F11 function key GLUT_KEY_F12              F12 function key GLUT_KEY_LEFT             Left function key GLUT_KEY_RIGHT            Up function key GLUT_KEY_UP               Right function key GLUT_KEY_DOWN             Down function key GLUT_KEY_PAGE_UP          Page Up function key GLUT_KEY_PAGE_DOWN        Page Down function key GLUT_KEY_HOME             Home function key GLUT_KEY_END              End function key GLUT_KEY_INSERT           Insert function key

练习1: 程序实现:当一些特殊键按下的时候,改变三角形的颜色。这个函数使在按下F1键时三角形为红色,按下F2键时为绿色,按下F3键时为蓝色。 Keyboard4

练习2: 程序实现:当一些普通键按下的时候,改变茶壶的颜色。这个函数使在按下R键时茶壶为红色,按下G键时为绿色,按下B键时为蓝色。 Keyboard3