嘻嘻 有没有英俊的小哥哥或者美丽的小姐姐来解答我的小小疑问呀 关于OPENGL 的

编程小小白,运行后是两个白色窗口,什么都没有。我想要一个三角形,可以控制移动和颜色的。。。


以下是代码


#include <windows.h>  

#include <gl/gl.h>   
#include <glut.h>
float x=0.5, y=0.5, z=0.5;
float vx = 0, vy = 0;
float pox = 0, poy = 0, t = 0;




void display() 
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPushMatrix();
pox = pox + vx * t;
poy = poy + vy * t;
glTranslatef(pox, poy, 0.0f);
glColor3f(x, y, z);
glBegin(GL_TRIANGLES);
glVertex3d(0.0, 0.0, 5.0);
glVertex3d(0.0, 5.0, 0.0);
glVertex3d(5.0, 0.0, 0.0);
glEnd();
glPopMatrix();
glutSwapBuffers();
t += 1;
}


void exchangecolor(unsigned char key, int x, int y)
{
switch (key)
{
case 1: x -= 0.1;  break;
case 2: y -= 0.1;  break;
case 3: z -= 0.1;  break;
case 4: x += 0.1;  break;
case 5: y += 0.1;  break;
case 6: z += 0.1;  break;
case 'w': vy += 0.1;  break;
case 's': vy -= 0.1;  break;
case 'a': vx -= 0.1;  break;
case 'd': vx += 0.1;  break;
}


}


int main(int argc, char** argv)
{
glutInit(&argc, argv);
glViewport(0, 0, 400, 400);
glClearColor(0.0f, 0.0f, 1.0f, 1.0f); 
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowPosition(200, 500);
glutInitWindowSize(400, 400);
glutCreateWindow("反弹三角形");
glutDisplayFunc(display);
glutKeyboardFunc(exchangecolor);
glutMainLoop();
return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_42059573/article/details/80289228
今日推荐