| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 660 人关注过本帖
标题:求助:OPENGL的动画实现
只看楼主 加入收藏
zlamp
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-5-7
结帖率:0
收藏
已结贴  问题点数:20 回复次数:1 
求助:OPENGL的动画实现
本人毕业设计需要使用opengl制作动画,不知如何实现动画,请高人指教!
先给出一个一条线段示例,起始点是(0,0,0),终点是(5000+x,5000+y,5000+z)
现在需要做一个简单动画如下表表示:

时间(s) 0.1 0.2 0.3 .... 假设到2秒为止
 x 100 200 300 ....  
 y 100 200 300 ....
 z 100 200 300 ....

下面是这条线段的代码,希望有高人能在这段代码的基础上帮我添加实现动画的语句,谢谢!

#include <windows.h>
#include <windows.h>
#include <GL/glut.h>
#include <math.h>

float x=0;
float y=0;
float z=0;

void model(void)  
{
glClear(GL_COLOR_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(-100,-100,40,100,0,0,0,0,100);
glLineWidth(1);
glBegin(GL_LINES);//坐标轴
  glColor3f(1,1,1);
  glVertex3f(0,0,0);//X轴
  glVertex3f(100000,0,0);
  glVertex3f(0,0,0); //Y轴
  glVertex3f(0,100000,0);
  glVertex3f(0,0,0);//Z轴
  glVertex3f(0,0,100000);
glEnd();

glLineWidth(5);
glBegin(GL_LINES);
  glColor3f(0,1,1);
  glVertex3f(0,0,0);   
  glVertex3f(5000+x,5000+y,5000+z);
glEnd();

glFlush();
}


void reshape(int w,int h)
{
 glViewport(0,0,w,h);
 glMatrixMode(GL_PROJECTION);
 glLoadIdentity();
 glOrtho(-15000,15000,-10000,20000,-30000,30000);
}

void init()
{
 glClearColor(1.0,1.0,1.0,1.0);
 glColor3f(0.0,0.0,0.0);
}

int main(int argc, char *argv[])  
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
glutInitWindowPosition(200,100);
glutInitWindowSize(600,600);
glutCreateWindow("DESIGN");
glutReshapeFunc(reshape);
glutDisplayFunc(&model);
glutMainLoop();
init();
return 0;
}
搜索更多相关主题的帖子: OPENGL 动画 
2010-05-07 04:10
hzyzxj
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:76
专家分:168
注 册:2009-6-14
收藏
得分:20 
添加空闲处理函数。在里面改变参数,并重绘
2010-05-07 22:25
快速回复:求助:OPENGL的动画实现
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013268 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved