opengl之glutTimerFunc

glutTimerFunc详解 阅读详情

今天正式开始学习opengl,首先看到的就是这个glutTimerFunc()函数

下面来好好说明一下这个函数,首先看下面的代码

int main(int argc, char *argv[])
{
	//初始化opengl环境
    glutInit(&argc, argv);
	glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
	//创建窗口
    glutInitWindowPosition(100, 100);
    glutInitWindowSize(400, 400);
    glutCreateWindow("第一个OpenGL程序");
	//设置相关回掉函数
    glutDisplayFunc(&myDisplay);
	glutTimerFunc(1,myTimerFunc,0);//
	glutReshapeFunc(&myReshape);
	glutKeyboardFunc(&myKeyboardFunc);//
	//初始化opengl绘制状态
	SetRC();
	//进入消息循环
    glutMainLoop();
    return 0;
}
然后让我们专门看看glutTimeFunc()函数,不难看出,这个函数必然和时间有关系,它的函数原型是

glutTimerFunc(unsigned int millis, void (*func)(int value), int value);
参数对应关系为:glutTimerFunc(毫秒数, 回调函数指针, 区别值);

void myDisplay(void);
void myTimerFunc(int val)
{
	seta+=1;
	myDisplay();
	glutTimerFunc(1,myTimerFunc,0);
}

上面这段代码的意思就是,每隔一秒刷新一次
OPengl 二维动画 glutTimerfunc 功能实现 1  使用定时器glutTimerfunc时 ,初始的时候注册一个定时器的回调函数, 原型是glutTimerFunc(unsigned int millis,void (*func)(int value),int value); 参数的对应关系为:glutTimerFunc(毫秒数,回调函数指针,区别值)。毫秒数就是告诉程序多少毫秒区来进行一次绘制,别值用来区别是哪一个定时器。2 写自己的回调函... 阅读详情

相关推荐

OpenGL.从环境搭建到简单动画的实现

计算机图形学 OpenGL的使用 首先给VS2015配置OpenGL环境就花了很大的力气 然而到最后发现我一直改的都是以前安装遗留的vs2013 使用的缺失vs2015 泪奔。。。 配置OpenGL环境 vs2015 + OpenGL 理论上来讲vs的各个版本之间的差异不大 所需材料 下载一套OpenGL的.h、.lib、.dll文件 链接http://pan

随便写写 4057

OpenGL函数功能-->glutTimerFunc()

(1)如果用定时器的话,初始的时候注册一个定时器的回调函数,原型是 glutTimerFunc(unsigned int millis, void (*func)(int value), int value); 参数对应关系为:glutTimerFunc(毫秒数, 回调函数指针, 区别值); (2)写自己的回调函数 void OnTimer(int value); ...

weixin_30609331的博客 1269

openGL绘制移动的矩形

#include "stdafx.h"#include"windows.h"#include"gl.h"#include"glut.h"//参数指定正方形位置和大小GLfloat x1 = 100.0f;GLfloat y1 = 150.0f;GLsizei rsize = 50;//正方形运动变换的步长GLfloat xstep = 1.0f;GLfloat ystep = 1.0f;//窗口大...

柠萌味 2019

【OpenGL】-008 GLUT中的定时器

【OpenGL】-008 GLUT中的定时器   定时器是窗口程序中的一个重要功能,用于按照固定的时间间隔之后执行某些特定动作。在window程序中,有WM_TIMER消息进行响应。在使用GLUT进行窗口管理的程序中,如何进行定时器操作? 文章目录【OpenGL】-008 GLUT中的定时器1. glutTimerFunc函数2. 注意3. 效果 1. glutTimerFunc函数   在进行窗...

freehawkzk的专栏 2700

英飞凌AURIX™ Development Studio(ADS)工程调试与烧录实战指南

本文详细介绍了英飞凌AURIX™ Development Studio(ADS)的工程调试与烧录实战指南。从调试环境搭建、硬件连接到断点设置、变量监控等核心调试技巧,帮助开发者快速掌握ADS安装使用教程,提升多核处理器开发效率。

k8l9m0n的博客 573

Pixhawk固定翼飞行控制实战:L1与TECS算法详解(附代码解析)

本文深入解析了Pixhawk飞控在固定翼无人机中的核心控制算法:L1导航与TECS总能量控制。通过剖析算法原理、代码实现与实战调参,帮助开发者解决航线跟踪振荡、高度速度不稳定等常见问题,实现精准稳定的自主飞行。

wine的专栏 743

glut 动画 --- 使用glutTimerFunc()函数

双缓冲使用到的基本函数: 1,void glutSwapBuffers(void) 函数 来实现从非显示缓冲区到显示缓冲区的复制.一般放在场景绘制函数(void RenderScene(void))的最后. 2,glutInitDisplayMode()函数 参数设为双缓冲,GLUT_DOUBLE; 3, void glutPostRedisplay(void)函数 glutP

qqqren的博客 3226

FPGA实战:用DDR3和乒乓操作解决视频帧撕裂问题(附Verilog代码)

本文详细介绍了如何利用DDR3内存和乒乓操作架构解决FPGA视频处理中的帧撕裂问题。通过多帧缓存原理、AXI接口配置和自适应乒乓操作设计,有效隔离读写操作,确保视频流稳定传输。文章包含Verilog代码实现和性能优化技巧,适用于工业相机、医疗影像等高速视频处理场景。

m2n3b4v5c6的博客 289

OpenGL -- 二维动画 glutTimerFunc 函数

有了简单的画图基础外,可以通过openGL的glutTimerFunc函数实现简单的动画砖块在窗口四周不断的弹来弹去代码主要是glutTimerFunc函数的使用, 见代码#include <gl\glut.h> #include <gl\GLU.h> #include <gl\GL.h> #include <math.h>const GLfloat PI = 3.141595654f; c

master-dragon的专栏 7501

AI算力瓶颈与系统优化实战指南

AI算力瓶颈已成为制约人工智能发展的关键因素,特别是在处理transformer类模型时,传统的冯·诺依曼架构面临严重的'内存墙'问题。通过硬件加速、系统优化和算法改进的三级策略,可以有效提升资源利用率。在嵌入式AI领域,结合量化、剪枝和专用指令集扩展等技术,能在资源受限设备上实现高效推理。这些优化方法在自动驾驶、工业视觉等场景中已展现出显著价值,推动AI应用从云端向边缘迁移。随着AI算力需求的持续增长,掌握系统优化技能将成为开发者的核心竞争力。

weixin_32597009的博客 339

Bochs源码分析 - 4: 使用ida来调试bochs

前言 bochs内部提供了一个调试器,但是这个命令行调试器相当难用,想找一个gui的debugger。第一次是在百度百科的bochs词条中介绍的peter-bochs-debugger调试器(java编写),但是后来发现ida也有一个bochs调试器,因为对ida比较熟悉,就选用此作为bochs调试器。 在配置过程中参考博客 https://blog.youkuaiyun.com/cssxn/article/details/90738498 中的配置,但是这是直接发布版本,拿源码编译...

WriteAnything_的博客 2755

OpenGL函数功能glutTimerFunc()

(1)如果用定时器的话,初始的时候注册一个定时器的回调函数,原型是 glutTimerFunc(unsigned int millis, void (*func)(int value), int value);         参数对应关系为:glutTimerFunc(毫秒数, 回调函数指针, 区别值); (2)写自己的回调函数 void OnTimer(int value);         ...

AplusX 9804

基于Simulink的无线充电系统LCC补偿网络建模与控制

本文详细介绍了基于Simulink的无线充电系统LCC补偿网络建模与控制方法。首先分析了LCC补偿网络的恒流输出、软开关实现和抗偏移能力等优势,并对比了不同补偿拓扑特性。随后分步骤讲解了Simulink建模流程,包括LCC主电路构建、关键参数设计、双闭环控制系统实现等核心环节。重点阐述了移相控制策略和软开关验证方法,提供了系统效率计算和抗偏移测试的调试技巧。最后展示了仿真结果,在耦合系数变化20%时,闭环系统仍能保持输出电压稳定在±2%波动范围内。文章还探讨了工程扩展方向,并针对常见问题给出了解决方案,为无

xiaoheshang_123的博客 539

OpenGL带杆小三角红旗不断旋转

OpenGL带杆小三角红旗 旋转

weixin_45322373的博客 607

NOTE: When using the `ipython kernel` entry point, Ctrl-C will not work.解决方案

本文主要介绍了NOTE: When using the `ipython kernel` entry point, Ctrl-C will not work.解决方案,希望能对使用jupyter notebook的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 11万+

0.嵌入式控制器EC实战 Embedded Controller开发概述

文章目录前言1.嵌入式控制器EC概述2.EC芯片框图(IT8502为例)3.General Purpose I/O Port (GPIO)4.SMBus(System Management Bus,系统管理总线)5.PWM、TACH6.KBC(KeyBoard Controller)7.PS/28.ADC(模数转换)总结 前言 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 1.嵌入式控制器EC概述 嵌入式控制器EC是挂在CPU的L

qq_30135687的博客 1万+

全景视频播放器中OpenGL的相关记录

全景视频播放器中OpenGL的相关记录一、OpenGL顶点数组二、坐标系与投影三、坐标系相关函数四、纹理坐标五、纹理过滤六、深度缓冲区七、OpenGL的glut库OpenGL函数功能glutTimerFunc()glutMainLoop()循环什么? 一、OpenGL顶点数组 OpenGL顶点数组详细介绍.(可不看) **OpenGL顶点数组的理解. glVertex函数调用的开销会过大,而顶点数组就是将原来由一系列的glVertex*指定的顶点放在一个数组中(其意思就是顶点数据组成的数组)由顶点数组处理函

qq_43541062的博客 614

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

opengl超级宝典代码3

第三个例子是第二章的最后一个例子--bounce 代码如下: // Initial square position and size GLfloat x = 0.0f; GLfloat y = 0.0f; GLfloat rsize = 25; // Step size in x and y directions // (number of pixels to move ea...

sogotobj 212

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

使用glut定时器控制帧率

<br />写了个程序,运行很慢,帧率很低,不知道什么原因,以为程序代码太多,执行太慢,经过不断的调试和验证,才弄明白。现在记录一下:<br /> <br />在glut函数中:<br />      通过函数glutDisplayFunc(Draw);来设置需要显示的画面函数,虽然函数中有glutSwapBuffers();和glFlush();函数来刷新输出,但不会不断进行刷新。<br /> <br />     如果需要不断刷新,则需要进行如下设置:<br />     glutDisplayFunc

hitxiaya的专栏 8654

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

OpenGL实现会动的圆

#include&lt;GL/glut.h&gt;//引入头文件。 #include &lt;stdio.h&gt; #include &lt;math.h&gt; int time = 0; int count = 0; const int n = 20; GLfloat R = 0.1f; const GLfloat Pi = 3.1415926536f; GLfloat v[20] = ...

我思故我在-笛卡尔 1145

OpenGL 图形编程 学习笔记 一

[2012-12-31 16:15] OpenGL学习笔记(6)第一个动画 - Clingingboy - 博客园 - Google Chrome   glutMouseFunc用于捕获鼠标事件 glutKeyboardFunc用于捕获键盘事件 glutMotionFunc用于鼠标按下又移动鼠标的事件(MouseMove) glutIdleFunc事件,当循环队列处于空闲时则触发该...

东湖畔 179

openGL读取bvh

整理下最近的看的,查的,并且自己动手实践后的一些思路吧,也方便以后整理。 程序是win32控制台程序,软件VS2010.。 一开始读取bvh文件:用的是fscanf()这个函数,可以每隔一个空格或换行读出数据来,非常方便赋值。 对于Node节点的结构,有几个要说一下: offset:就是设置的offset[3]; channel部分:太懒了,直接设置的char channel[6][

ColaWJY的专栏 1932

OpenGL例子

这是资料中的一个实例,当鼠标左键点击时,开始计时并调用dislay,视图中的圆锥沿z轴开始旋转,直到点击鼠标右键停 static GLfloat currentAngleOfRotation = 0.0; static void display() { glClear(GL_COLOR_BUFFER_BIT); glClearColor (0.0, 0.0, 0.0, 1

jiaoyaziyang的专栏 633

glutPostRedisplay重新刷新页面绘图

opengl重新绘制窗口: void timerProc(int id) { //display(); glutPostRedisplay(); glutTimerFunc(10,timerProc,1);//需要在函数中再调用一次,才能保证循环 } int main(int argc, char** argv) { //int k=0; glutInit(&argc, argv); glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB); glutInitWin

zhuiyuanzhongjia的博客 2603

【转】使用glut定时器控制帧率

写了个程序,运行很慢,帧率很低,不知道什么原因,以为程序代码太多,执行太慢,经过不断的调试和验证,才弄明白。现在记录一下: 在glut函数中: 通过函数glutDisplayFunc(Draw);来设置需要显示的画面函数,虽然函数中有glutSwapBuffers();和glFlush();函数来刷新输出,但不会不断进行刷新。 如果需要不断刷新,则需要进行如...

weixin_34283445的博客 306
上一篇: opengl之glTranslatef()函数和glRotatef()函数和glLoadIdentity()函数
下一篇: opengl中gl、glu、glut的区别
code_AC
博客等级 码龄12年 255粉丝 109原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值