Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

C++ using glut for graphic computer This so far dimesion of octahedron weq2314#i

ID: 641665 • Letter: C

Question

C++ using glut for graphic computer

This so far dimesion of octahedron

weq2314#include <GLglut.h>

GLfloat xRotated, yRotated, zRotated;
// Octahedron
void displayOctahedron(void)
{

    glMatrixMode(GL_MODELVIEW);
    // clear the drawing buffer.
    glClear(GL_COLOR_BUFFER_BIT);
    // clear the identity matrix.
    glLoadIdentity();
    // traslate the draw by z = -4.0
    // Note this when you decrease z like -8.0 the drawing will looks far , or smaller.
    glTranslatef(0.0,0.0,-4.5);
    // Red color used to draw.
    glColor3f(0.8, 0.2, 0.1);
    // changing in transformation matrix.
    // rotation about X axis
    glRotatef(xRotated,1.0,0.0,0.0);
    // rotation about Y axis
    glRotatef(yRotated,0.0,1.0,0.0);
    // rotation about Z axis
    glRotatef(zRotated,0.0,0.0,1.0);
    // scaling transfomation
    glScalef(1.0,1.0,1.0);
    // built-in (glut library) function , draw you a Octahedron.
    glutSolidOctahedron();
    // Flush buffers to screen
     
    glFlush();        
    // sawp buffers called because we are using double buffering
   // glutSwapBuffers();
}

void reshapeOctahedron(int x, int y)
{
    if (y == 0 || x == 0) return;  //Nothing is visible then, so return
    //Set a new projection matrix
    glMatrixMode(GL_PROJECTION);  
    glLoadIdentity();
    //Angle of view:40 degrees
    //Near clipping plane distance: 0.5
    //Far clipping plane distance: 20.0
     
    gluPerspective(40.0,(GLdouble)x/(GLdouble)y,0.5,20.0);

    glViewport(0,0,x,y);  //Use the whole window for rendering
}

void idleOctahedron(void)
{
     yRotated += 0.03;
     
    displayOctahedron();
}
int main (int argc, char **argv)
{
    //Initialize GLUT
    glutInit(&argc, argv);
    //double buffering used to avoid flickering problem in animation
     glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);  
    // window size
    glutInitWindowSize(400,350);
    // create the window
    glutCreateWindow("Octahedron Rotating Animation");
    glPolygonMode(GL_FRONT_AND_BACK,GL_LINE);
    xRotated = yRotated = zRotated = 30.0;
     xRotated=33;
     yRotated=40;
    glClearColor(0.0,0.0,0.0,0.0);
    //Assign  the function used in events
    glutDisplayFunc(displayOctahedron);
   glutReshapeFunc(reshapeOctahedron);
    glutIdleFunc(idleOctahedron);
    //Let start glut loop
    glutMainLoop();
    return 0;
}

Here the problem :

When lowercase `x', `y', or `z' is pressed, your object should
rotate about the corresponding axis in a positive direction. When uppercase
`X', `Y', or `Z' is pressed, it should rotate about the corresponding axis in a
negative direction.

When lowercase `s' is pressed, your object should shrink. When
uppercase `S' is pressed, your object should grow.

And

Mouse-clicking any part of the window should cause your object
to move to that location.

Explanation / Answer

Here in the Problem Defination as it said a trigger must be used so that whenever a button is clicked or pressed suitable action must be carried out.

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote