LINE PROGRAMS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
55
57
58
//===============================================//
// Title : Transformation in OpenGL
// Programmer : V R E M P I R E
// Date : Thursday, July 12, 2001
//===============================================//

#include <stdio.h>
#include <gl/glut.h>

void Display(void)
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 
    glLoadIdentity();
    gluLookAt(0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
    glColor3f(0.0, 1.0, 0.0);

    glPushMatrix();
        glTranslatef(1.0, 0.0, 0.0);
        glBegin(GL_POLYGON);           
            glVertex3f( 0.0, 0.0, 0.0);          
// V0 ( 0, 0, 0)
            glVertex3f( 1.0f, 0.0, 0.0);         
// V1 ( 1, 0, 0)
            glVertex3f( 1.0f, 1.0f, 0.0);        
// V2 ( 1, 1, 0)
            glVertex3f( 0.5f, 1.5f, 0.0);        
// V3 (0.5, 1.5, 0)
            glVertex3f( 0.0, 1.0f, 0.0);          
// V4 ( 0, 1, 0)
        glEnd();
    glPopMatrix();

    glutSwapBuffers();
}

void Init(void)
{
    glClearColor(0.0, 0.0, 0.0, 0.0);
}

void Resize(int width, int height)
{
    glViewport(0, 0, width, height);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluPerspective(60.0, width/height, 0.1, 1000.0);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
}

int main(int argc, char **argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
    glutInitWindowSize(400, 400);
    glutInitWindowPosition(200, 200);
    glutCreateWindow("Polygon in OpenGL");
    Init();
    glutDisplayFunc(Display);
    glutReshapeFunc(Resize);
    glutMainLoop();
    return 0;
}