0% found this document useful (0 votes)
79 views6 pages

Program To Draw A Hut in Using OpenGL in C

Uploaded by

Joseph
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
79 views6 pages

Program To Draw A Hut in Using OpenGL in C

Uploaded by

Joseph
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

Program to draw a Hut in using OpenGL in C++

Approach: Follow the steps below to solve the problem:


 Initialize the toolkit using the function glutInit (&argc, argv).
 Set the display mode and specify the color scheme using the
function glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB).
 Specify the window size using the function glutInitWindowSize(1200, 740).
 Set the starting position for the window using the
function glutInitWindowPosition (0, 0).
 Initialize the window and set the title using the
function glutCreateWindow(“Basic hut like structure”).
 Initialize the myInit() function and perform the following steps:
o Set the background color to orange using the
function glClearColor(1.0, 0.5, 0.0, 1.0).
o Specify the display area using the function gluOrtho2D(0.0, 400.0, 0.0,
400.0).
 Initialize the myDisplay() function and perform the following steps:
o Clear the screen using the
function glClear(GL_COLOR_BUFFER_BIT).
o The rectangular part of the hut can be drawn using the
function glPointSize(4.0).
o Set the drawing color to glColor3f(0.5f, 0.5f, 0.5f).
o Create the 2 windows, the door, the top triangle, and the main rectangle
of the house using the polygon command and setting their vertices by
using the functions:
o glBegin(GL_POLYGON);
o glVertex2i ( x, y );
o Color the polygons in the above steps using the function glColor3f(R,
G, B).
Below is the implementation of the above approach:

PROGRAM

// C++ program for the above approach

#include <GL\glut.h>
#include <iostream>
#include <windows.h>
using namespace std;

// Function to initialize the drivers


void myInit(void)
{
// Clear all the screen color
glClearColor(1.0, 0.5, 0.0, 1.0);

// Sets background color to orange


glMatrixMode(GL_PROJECTION);

glLoadIdentity();

// Specify the display area


gluOrtho2D(0.0, 400.0, 0.0, 400.0);
}

// Function to display the Hut like


// structure on the console
void myDisplay(void)
{
// Clear the screen buffer
glClear(GL_COLOR_BUFFER_BIT);

glPointSize(4.0);

// Rectangular part of hut


glColor3f(0.5f, 0.5f, 0.5f);

// Begin the polygon


glBegin(GL_POLYGON);

// Create the polygon


glVertex2i(40, 40);
glVertex2i(320, 40);

glVertex2i(40, 200);
glVertex2i(320, 200);

glVertex2i(40, 200);
glVertex2i(40, 40);

glVertex2i(320, 200);
glVertex2i(320, 40);

glEnd();

// Right Window Update


glColor3f(1.0f, 0.0f, 0.0f);

// Begin the polygon


glBegin(GL_POLYGON);

// Create the polygon


glVertex2i(220, 60);
glVertex2i(300, 60);

glVertex2i(220, 150);
glVertex2i(300, 150);

glVertex2i(220, 60);
glVertex2i(220, 150);

glVertex2i(300, 150);
glVertex2i(300, 60);

glEnd();

// Right Window Update part 2


glColor3f(1.0f, 0.0f, 0.0f);

// Begin the polygon


glBegin(GL_POLYGON);

// Create the polygon


glVertex2i(220, 170);
glVertex2i(300, 170);

glVertex2i(220, 190);
glVertex2i(300, 190);
glVertex2i(220, 170);
glVertex2i(220, 190);

glVertex2i(300, 190);
glVertex2i(300, 170);

glEnd();

// Door
glColor3f(0.60f, 0.42f, 0.16f);

// Begin the polygon


glBegin(GL_POLYGON);

// Create the polygon


glVertex2i(130, 40);
glVertex2i(130, 160);

glVertex2i(130, 160);
glVertex2i(180, 160);

glVertex2i(180, 100);
glVertex2i(180, 40);

glVertex2i(120, 40);
glVertex2i(170, 40);

glEnd();

// Create Door Part 2


glColor3f(0.60f, 0.42f, 0.16f);

// Begin the polygon


glBegin(GL_POLYGON);

// Create the polygon


glVertex2i(130, 170);
glVertex2i(130, 180);

glVertex2i(130, 180);
glVertex2i(180, 180);

glVertex2i(180, 170);
glVertex2i(180, 180);
glVertex2i(130, 170);
glVertex2i(180, 170);

glEnd();

// Hut's top triangle part


glColor3f(1.0f, 0.0f, 1.0f);

// Begin the polygon


glBegin(GL_POLYGON);

// Create the polygon


glVertex2i(10, 200);
glVertex2i(340, 200);

glVertex2i(200, 390);

glVertex2i(10, 200);
glVertex2i(200, 390);

glEnd();

// Sends all output to display


glFlush();
}

// Driver Code
int main(int argc, char** argv)
{
// Initialize the init function
glutInit(&argc, argv);

// Initialize the toolkit;


glutInitDisplayMode(
GLUT_SINGLE | GLUT_RGB);

// Sets the display mode and


// specify the colour scheme
glutInitWindowSize(1200, 740);

// Specify the window size


glutInitWindowPosition(0, 0);

// Sets the starting position


// for the window
glutCreateWindow("Basic hut like"
" structure");

// Creates the window and


// sets the title
glutDisplayFunc(myDisplay);
myInit();

// Additional initializations
glutMainLoop();

// Go into a loop until event


// occurs
return 0;
}

You might also like