OpenGL绘图无法显示动画

mazusoest 2008-04-13 07:01:12
初学OpenGL,想完成一个动画的演示,但是图像绘出之后没有动画效果,如果这个时候拉拽弹出的对话框,就可以看到动画效果了,程序附下,望高人指点。

void CALLBACK reshape (int width,int height){

glViewport(0,0,(GLint)width,(GLint)height);

glMatrixMode(GL_PROJECTION);

glLoadIdentity();

glOrtho(-10.0,10.0,-10.0,10.0,-10.0,10.0);

glMatrixMode(GL_MODELVIEW);
}

void CALLBACK draw(void){

glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);

glLoadIdentity();
glTranslatef(-2.5,-1.0,1.0);
glRotatef(-60,1.0,0.0,0.0);
glRotatef(0,0.0,1.0,0.0);
glRotatef(-90,0.0,0.0,1.0);

glColor3f(1.0,0.65,0.0);
glEnable(GL_POINT_SMOOTH);
glPointSize(15.0);
glBegin(GL_POINTS);
//每一帧图像的点坐标信息
glEnd();
glFlush();
auxSwapBuffers();

//下面的是各个点的变化规律
if (a< (794-1) )
a=a+1;
else
a=a-794+1;
void main (int argc ,char** argv){

auxInitPosition(0,0,500,500);
auxInitWindow(argv[0]);

auxInitDisplayMode(AUX_RGB|AUX_DEPTH|AUX_DOUBLE);

glClearColor(0.0,0.0,0.0,0.0);
glShadeModel(GL_FLAT);
glPolygonMode(GL_FRONT_AND_BACK,GL_FILL);
glEnable(GL_DEPTH_TEST);

readdata();

auxReshapeFunc(reshape);
auxMainLoop(draw);
auxIdleFunc(draw);
}
...全文
134 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
mazusoest 2008-04-14
  • 打赏
  • 举报
回复
问题已解决
我是按照江早的那本《OpenGL VC/VB图形编程》里给出的一个示例写的,那里面给出的代码错了
auxMainLoop(draw);
auxIdleFunc(draw);
这两行的语句应该互换,程序执行到auxMainLoop(draw); 就不再继续了
ryfdizuo 2008-04-14
  • 打赏
  • 举报
回复
如果这个时候拉拽弹出的对话框,就可以看到动画效果了
------------
估计是你init函数没有搞好:
当你拉拽窗口之后,会触发reshape函数进行重画,此时有动画效果说明程序没什么大问题,
lsmdiao0812 2008-04-14
  • 打赏
  • 举报
回复
路过
sinosinux 2008-04-14
  • 打赏
  • 举报
回复
顶up
xbt746 2008-04-14
  • 打赏
  • 举报
回复
你好像没有响应消息或者时间函数
画图的点没有随着一个节奏进行变化

动画实现一般都是伴随时间或者一些硬件消息的
不想低调 2008-04-13
  • 打赏
  • 举报
回复
up

64,631

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧