#include <glut.h>
void draw(void)
{
glColor3f(0.0,1.0,1.0);
glBegin(GL_QUADS);
glVertex2i(500,500);
glVertex2i(700,500);
glVertex2i(700,300);
glVertex2i(500,300);
glEnd();
glBegin(GL_TRIANGLES);
glColor3f(1.0,0.0,0.0);
glVertex2i(200,300);
glColor3f(0.0,1.0,0.0);
glVertex2i(400,300);
glColor3f(0.0,0.0,1.0);
glVertex2i(300,500);
glEnd();
}
void Trans(GLfloat tx,GLfloat ty){
glMatrixMode(GL_MODELVIEW);
glClear(GL_COLOR_BUFFER_BIT);
glTranslatef( tx,ty,0.0);
draw();
glFlush();
glutSwapBuffers();
}
void myDisplay(void)
{
glClear(GL_COLOR_BUFFER_BIT);
draw();
glFlush();
glutSwapBuffers();
}
void processNormalkeys(unsigned char key, int x ,int y)
{
GLfloat tx=0.0, ty =0.0;
if (key=='r'){
tx=tx+10;
}
else if (key=='l'){
tx=tx-10;}
Trans(tx, ty);
glutPostRedisplay();
}
void init(void)
{
glClearColor(0.0,0.0,0.0,0.0);
glColor3f(1.0,1.0,1.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0.0,800.0,0.0,800.0);
}
void main (int argc, char **argv)
{
glutInit (&argc,argv);
glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);
glutInitWindowSize(800,800);
glutInitWindowPosition(0,0);
glutCreateWindow("draw");
glutDisplayFunc( myDisplay);
glutKeyboardFunc(processNormalkeys);
init();
glutMainLoop();}