OpenGL中简单动画之矩形旋转

来源:互联网 发布:java分布式高并发框架 编辑:程序博客网 时间:2024/06/10 08:47

OpenGL动画生成最基本的方式就是,利用ilde函数进行重新绘制

那么很简单就是利用

glutPostRedisplay();
函数进行搞定

废话不多说,看程序

#include <GL/glut.h>#include <math.h>#define DEG_TO_RAD 0.017453GLfloat theta = 0.0;void display(){glClear(GL_COLOR_BUFFER_BIT);glBegin(GL_POLYGON);glVertex2f(sin(DEG_TO_RAD*theta),-cos(DEG_TO_RAD*theta));glVertex2f(-cos(DEG_TO_RAD*theta),-sin(DEG_TO_RAD*theta));glVertex2f(-sin(DEG_TO_RAD*theta),cos(DEG_TO_RAD*theta));glVertex2f(cos(DEG_TO_RAD*theta),sin(DEG_TO_RAD*theta));glEnd();//flush GL  buffersglFlush();} void myidle(){theta += 0.2;if(theta>360.0)theta -= 360.0;glutPostRedisplay();}void init(){//set color to blackglClearColor(0.0,0.0,0.0,0.0);//set fill color to whiteglColor3f(1.0,1.0,0.0);glMatrixMode(GL_PROJECTION);glLoadIdentity();//gluOrtho2D(-1.0,1.0,-1.0,1.0);}int main(int argc, char *argv[]){/* code */glutInit(&argc,argv);glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);glutInitWindowSize(500,500);glutInitWindowPosition(0,0);glutCreateWindow("hello");glutDisplayFunc(display);init();glutIdleFunc(myidle);glutMainLoop();return 0;}

程序本生一点也不难,只要高清楚矩形的四点的坐标如何表示就可以


0 0
原创粉丝点击