openGL---旋转彩色三角形

来源:百度知道 编辑:UC知道 时间:2024/09/27 17:36:02
#include <windows.h>
#include <gl/gl.h>
#include <gl/glu.h>
#include <gl/glut.h>

int screenWidth = 800;
int screenHeight = 600;

float red = 1.0f;
float green = 1.0f;
float blue = 1.0f;

GLfloat rtri = 100.0f; // 用于三角形的角度
GLfloat rquad = -100.0f; // 用于四边形的角度

void myInit(void)
{
glShadeModel(GL_SMOOTH);
glClearColor(0.0,0.0,0.0,0.0);
glColor3f(red,green,blue);

glViewport(0,0,screenWidth,screenHeight);

glMatrixMode(GL_PROJECTION);
glLoadIdentity();

gluPerspective(45.0,(GLdouble)screenWidth/(GLdouble)screenHeight,0.1,100.0);

glMatrixMode(GL_MODELVIEW);
glLoadIdentity();

glClearDepth(1.0f);
glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_LEQUAL);
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
}

void myDisplay(void)
{
glClear(GL_COLOR_BUFFER

可以添加一个键盘操作,比如点一下a键调用一次glutPostRedisplay(重绘函数)。或者在glutSwapBuffers上做做手脚,这个算是绘制函数了,你可以在myDisplay里做个循环,把你绘制三角形和正方形的函数都放里面,还有glutSwapBuffers,每循环一次就rtri++; rquad++。但后者执行不太好,而且循环里建议加一个Sleep

当然不会动了……

glutDisplayFunc(myDisplay);

里的myDisplay只会调用一次啊~当然,如果窗口重绘的话它也会被再次调用~~~