CG

Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 3

#include <GL/glut.

h>

void keyboard(unsigned char key, int x, int y)


{
switch (key)
{
case VK_ESCAPE: /* Escape key */
exit(0);
break;

default:
break;
}
}

void InitGL(void)
{
glShadeModel(GL_SMOOTH); // Enable
Smooth Shading
glClearColor(0.0f, 1.0f, 1.0f, 0.5f); // Black
Background
glClearDepth(1.0f); //
Depth Buffer Setup
glEnable(GL_DEPTH_TEST); // Enables
Depth Testing
glDepthFunc(GL_LEQUAL); // The Type
Of Depth Testing To Do
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); // Really Nice
Perspective Calculations
}

void ReSizeGLScene(int w, int h)


{
glViewport(0, 0, (GLsizei)w, (GLsizei)h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.0f, (GLfloat)w / (GLfloat)h, 0.1f, 1000.0f);
//glOrtho(0, 100, 0, 100,0,100);

glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
void DrawGLScene(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();

glColor3f(1.0, 0.0, 0.0);


glEnable(GL_LINE);
//glLineStipple(1, 0x1C47);
glLineWidth(5);
glEnable(GL_POINT_SMOOTH);
glPointSize(10);
glFrontFace(GL_CW);
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
glTranslatef(0, 0, -500);
//glRotatef(30, 0, 0,1);
glBegin(GL_QUADS);
//Start form 1
glVertex2d(10, 40);
glVertex2d(50, 40);
glVertex2d(50, 10);
glColor3f(0.0f, 0.0f, 1.0f);
glVertex2d(10, 10);
// End Form 1

//Start Nisted Form


glVertex2d(10, 25);
glVertex2d(30, 40);
glVertex2d(50, 25);
glColor3f(0.0f, 0.0f, 1.0f);
glVertex2d(30, 10);

//End Nisted Form

// Start Internal Form


glVertex2d(17, 30);
glVertex2d(43, 30);
glVertex2d(43, 20);
glColor3f(0.0f, 0.0f, 1.0f);
glVertex2d(17, 20);
// Start Internal Form
glEnd();

glBegin(GL_QUADS);

//Start Polygon 2
glVertex2d(30, 47);
glVertex2d(30, 73);
glVertex2d(20, 73);
glColor3f(0.0f, 0.0f, 1.0f);
glVertex2d(20, 47);

glVertex2d(25, 90);
glVertex2d(70, 90);
glVertex2d(73, 73);
glColor3f(0.0f, 0.0f, 1.0f);
glVertex2d(30, 73);

glVertex2d(30, 73);
glVertex2d(73,73);
glVertex2d(73, 47);
glColor3f(0.0f, 0.0f, 1.0f);
glVertex2d(30, 47);
//End Polygon 2

glEnd();

// Start Triangle For Polygon 2


glBegin(GL_TRIANGLE_STRIP);

glVertex2d(25, 90);
glVertex2d(30, 73);
glColor3f(0.0f, 0.0f, 1.0f);
glVertex2d(20, 73);
glEnd();
// End Triangle For Polygon 2
glFlush();
}

int main(int argc, char** argv)


{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE); // Use single display buffer.
glutInitWindowSize(640, 640);
glutInitWindowPosition(0, 0);
glutCreateWindow("EMPTY WINDOW");
InitGL();
glutReshapeFunc(ReSizeGLScene);
glutDisplayFunc(DrawGLScene);
glutKeyboardFunc(keyboard);
glutMainLoop();
return 0;
}

You might also like