#include <stdlib.h>
#include <GL/glut.h>
void changeSize( int w , int h);
void renderScene();
int main(int argc ,char** argv)
{
glutInit( &argc , argv);
glutInitDisplayMode( GLUT_DEPTH|GLUT_SINGLE|GLUT_RGBA);
glutInitWindowPosition(100,100);
glutInitWindowSize(320,320);
glutCreateWindow("GLUT TUT");
glutDisplayFunc(renderScene);
//空闲时调用
glutIdleFunc(renderScene);
//
glutReshapeFunc(changeSize);
//开启深度测试,因为默认没有开启
glEnable(GL_DEPTH_TEST);
glutMainLoop();
}
//w:宽度 h:高度
void changeSize( int w , int h)
{
//防止除数,即高度为0
if( h == 0)
h = 1;
float ratio = 1.0 * w / h;
//单位化投影矩阵
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
//设置窗口大小为单个窗口大小
glViewport(0, 0, w, h);
//
gluPerspective(45,ratio,1,1000);
//
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
//
gluLookAt(0.0,0.0,5.0, 0.0,0.0,-1.0,0.0f,1.0f,0.0f);
}
float angle = 0.0;
void renderScene()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
//
glPushMatrix();
//
glRotatef(angle , 0.0, 1.0 , 0.0);
//
glBegin(GL_TRIANGLES);
glVertex3f( -0.5 , -0.5 , 0.0);
glVertex3f( 0.5 , 0.0 , 0.0);
glVertex3f( 0.0 , 0.5 , 0.0);
glEnd();
//
glPopMatrix();
//
glutSwapBuffers();
glFlush();
angle+=0.01;
}
GLUT-旋转的三角形
最新推荐文章于 2024-01-13 12:35:17 发布