[go: up one dir, main page]

0% found this document useful (0 votes)
18 views3 pages

CG

Download as txt, pdf, or txt
Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1/ 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