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..


0 comments