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.
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.