• Home
  • Blog
  • Fixing my program one error. Computer Graphics via OpenGL on Linux

Fixing my program one error. Computer Graphics via OpenGL on Linux

0 comments

I have the assignment attached and I worked on it but it didn’t run the cases properly

This my code:

———————————————-

/*

PROGRAM NAME: Drawing Primitive Shapes

FUNCTION: Draw Normal Triangle, Triangle Strip, and Triangle Fan

LIBRARY: Open GL/glut

*/

#include <iostream>

#include <GL/glew.h>

#include <GL/glut.h>

float r=1, g=0,b=0;

bool* keyStates = new bool[256];

//Draw triangles – take three float for color as parameters

//Normal Triangle

void draw_normal_triangle(void){

glClear(GL_COLOR_BUFFER_BIT);

glLineWidth(3.0);

glColor3f(r,g,b);

//Draw a normal triangle

glBegin(GL_TRIANGLES);

glVertex2i(0,0);

glVertex2i(0,5);

glVertex2i(5,0);

glEnd();

glFlush();

}

//Triangle Strip

void draw_triangle_strip(void){

glClear(GL_COLOR_BUFFER_BIT);

//Trial Begin

glLineWidth(3.0);

glColor3f(r,g,b);

//Draw a Triangle Strip

glBegin(GL_TRIANGLE_STRIP);

glVertex2i(-3,5);

glVertex2i(5,0);

glVertex2i(6,-6);

glColor3f(1,0,0);

glVertex2i(-2,-3);

glVertex2i(-1,-5);

glEnd();

glFlush();

}

//Triangle Fan

void draw_triangle_fan(void){

glClear(GL_COLOR_BUFFER_BIT);

glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);

glLineWidth(3.0);

glColor3f(r,g,b);

//Draw a Triangle Fan

glBegin(GL_TRIANGLE_FAN);

glVertex2i(0,0);

glVertex2i(5,0);

glVertex2i(3,3);

glColor3f(1,0,0);

glVertex2i(-3,3);

glVertex2i(-5,0);

glColor3f(1,1,0);

glVertex2i(-3,-3);

glVertex2i(3,-3);

glVertex2i(5,0);

glEnd();

glFlush();

}

void init(){

glClearColor(1,1,1,0);

gluOrtho2D(-10,10,-10,10); //window co-ordinates

}

//Handling Keyboard input

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

keyStates [key]=true; // Set the state of the current key to pressed

switch (key){

case ‘r’: r = 1; g = 0; b = 0; break;

case ‘g’: r = 0; g = 1; b = 0; break;

case ‘b’: r = 0; g = 0; b = 1; break;

case ‘t’: draw_normal_triangle(); break;

case ‘s’: draw_triangle_strip(); break;

case ‘f’: draw_triangle_fan(); break;

}

glutPostRedisplay();

}

//Main Entry/Funcion

int main(int argc, char **argv){

glutInit(&argc, argv);

glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);

glutInitWindowSize(700,700); //Window size

glutInitWindowPosition(100,150); //Window Position

glutCreateWindow(“Draw Triangles – CPP”); //Window title

glutDisplayFunc(draw_normal_triangle);

init();

glutKeyboardFunc(keyboard); //Register keyboard

//Program Execution Loop

glutMainLoop();

return EXIT_SUCCESS;

}

———————————————-

if I pressed T or S or F its stuck on glutDisplayFunc(draw_normal_triangle); function and cannot change to any other triangle. I want to fix this please even if the case condition changed to if condition..

About the Author

Follow me


{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}