OpenGL中簡單動畫之矩形旋轉

OpenGL動畫生成最基本的方式就是,利用ilde函數進行重新繪製

那麼很簡單就是利用

glutPostRedisplay();
函數進行搞定

廢話不多說,看程序

#include <GL/glut.h>
#include <math.h>
#define DEG_TO_RAD 0.017453
GLfloat 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  buffers
	glFlush();
} 
void myidle()
{
	theta += 0.2;
	if(theta>360.0)
			theta -= 360.0;
	glutPostRedisplay();
}
void init()
{
	//set color to black
	glClearColor(0.0,0.0,0.0,0.0);
	//set fill color to white
	glColor3f(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;
}

程序本生一點也不難,只要高清楚矩形的四點的座標如何表示就可以


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章