[FSUG-Bangalore] FSUG-Bangalore Digest, Vol 35, Issue 24

arvind_khadri arvindkhadri at gmail.com
Fri Mar 27 12:05:40 IST 2009


On Fri, 2009-03-27 at 10:28 +0530, fsug-bangalore-request at mm.gnu.org.in
wrote:
> 
> >
> >
> > > i got a program from this link
> > >
> > >
> >
> http://people.sc.fsu.edu/~burkardt/cpp_src/rotating_cube_display_open_gl/rotating_cube_display_open_gl.html<http://people.sc.fsu.edu/%7Eburkardt/cpp_src/rotating_cube_display_open_gl/rotating_cube_display_open_gl.html>
> > <
> > http://people.sc.fsu.edu/%
> 7Eburkardt/cpp_src/rotating_cube_display_open_gl/rotating_cube_display_open_gl.html
> > >
> > >
> > >
> > >
> >
> http://people.sc.fsu.edu/~burkardt/cpp_src/rotating_cube_display_open_gl/rotating_cube_display_open_gl.html<http://people.sc.fsu.edu/%7Eburkardt/cpp_src/rotating_cube_display_open_gl/rotating_cube_display_open_gl.html>
> > <
> > http://people.sc.fsu.edu/%
> 7Eburkardt/cpp_src/rotating_cube_display_open_gl/rotating_cube_display_open_gl.html
> > >
> > >
> >
> > the program i have pasted below -- might be missing some lines as i
> removed
> > few lines ( comments ) while pasting here , the actual program is at
> the
> > bottom of the page ( link provided above )
> >
> > >
> > > # include <cstdlib>
> > > # include <cmath>
> > > # include <iostream>
> > > # include <iomanip>
> > > # include <fstream>
> > >
> > > # include <GL/glut.h>
> > >
> > > using namespace std;
> > >
> > > GLfloat vertices[][3] = {
> > >   { -1.0, -1.0, -1.0 },
> > >   {  1.0, -1.0, -1.0 },
> > >   {  1.0,  1.0, -1.0 },
> > >   { -1.0,  1.0, -1.0 },
> > >   { -1.0, -1.0,  1.0 },
> > >   {  1.0, -1.0,  1.0 },
> > >   {  1.0,  1.0,  1.0 },
> > >   { -1.0,  1.0,  1.0 } };
> > >
> > > GLfloat normals[][3] = {
> > >   { -1.0, -1.0, -1.0 },
> > >   {  1.0, -1.0, -1.0 },
> > >   {  1.0,  1.0, -1.0 },
> > >   { -1.0,  1.0, -1.0 },
> > >   { -1.0, -1.0,  1.0 },
> > >   {  1.0, -1.0,  1.0 },
> > >   {  1.0,  1.0,  1.0 },
> > >   { -1.0,  1.0,  1.0 } };
> > >
> > > GLfloat colors[][3] = {
> > >   { 0.0, 0.0, 0.0 },
> > >   { 1.0, 0.0, 0.0 },
> > >   { 1.0, 1.0, 0.0 },
> > >   { 0.0, 1.0, 0.0 },
> > >   { 0.0, 0.0, 1.0 },
> > >   { 1.0, 0.0, 1.0 },
> > >   { 1.0, 1.0, 1.0 },
> > >   { 0.0, 1.0, 1.0 } };
> > >
> > > static GLint axis = 2;
> > > static GLfloat theta[3] = { 0.0, 0.0, 0.0 };
> > >
> > > int main ( int argc, char *argv[] );
> > > void colorcube ( );
> > > void display ( );
> > > void mouse ( int btn, int state, int x, int y );
> > > void myReshape ( int w, int h );
> > > void polygon ( int a, int b, int c, int d );
> > > void spinCube ( );
> > >
> > >
> > >
> > > int main ( int argc, char *argv[] )
> > > {
> > >   glutInit ( &argc, argv );
> > >   glutInitDisplayMode ( GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH );
> > >   glutInitWindowSize ( 500, 500 );
> > >   glutInitWindowPosition ( 0, 0 );
> > >   glutCreateWindow ( "Rotating cube" );
> > >   glutReshapeFunc ( myReshape );
> > >   glutDisplayFunc ( display );
> > >   glutIdleFunc ( spinCube );
> > >   glutMouseFunc ( mouse );
> > >   glEnable ( GL_DEPTH_TEST );
> > >   glutMainLoop ( );
> > >
> > >   return 0;
> > > }
> > > void colorcube ( )
> > >
> > > {
> > >   polygon ( 0, 3, 2, 1 );
> > >   polygon ( 2, 3, 7, 6 );
> > >   polygon ( 0, 4, 7, 3 );
> > >   polygon ( 1, 2, 6, 5 );
> > >   polygon ( 4, 5, 6, 7 );
> > >   polygon ( 0, 1, 5, 4 );
> > >
> > >   return;
> > > }
> > >
> > > void display ( )
> > >
> > >   glClear ( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
> > >
> > >   glLoadIdentity ( );
> > >
> > >   glRotatef ( theta[0], 1.0, 0.0, 0.0 );
> > >   glRotatef ( theta[1], 0.0, 1.0, 0.0 );
> > >   glRotatef ( theta[2], 0.0, 0.0, 1.0 );
> > >
> > >   colorcube ( );
> > >   glFlush ( );
> > >   glutSwapBuffers ( );
> > >
> > >   return;
> > > }
> > >
> > >
> > > void mouse ( int btn, int state, int x, int y )
> > > {
> > >   if ( btn == GLUT_LEFT_BUTTON && state == GLUT_DOWN )
> > >   {
> > >     axis = axis + 1;
> > >   }
> > >   if ( btn == GLUT_MIDDLE_BUTTON && state == GLUT_DOWN )
> > >   {
> > >     axis = axis + 1;
> > >   }
> > >   if ( btn == GLUT_RIGHT_BUTTON && state == GLUT_DOWN )
> > >   {
> > >     axis = axis + 1;
> > >   }
> > >   axis = axis % 3;
> > >
> > >   return;
> > > }
> > >
> > > void myReshape ( int w, int h )
> > > {
> > >   glViewport ( 0, 0, w, h );
> > >   glMatrixMode ( GL_PROJECTION );
> > >   glLoadIdentity ( );
> > >
> > >   if ( w <= h )
> > >   {
> > >     glOrtho (
> > >       -2.0, 2.0,
> > >       -2.0 * ( GLfloat ) h / ( GLfloat ) w, 2.0 * ( GLfloat ) h /
> (
> > GLfloat
> > > ) w,
> > >       -10.0, 10.0 );
> > >   }
> > >   else
> > >   {
> > >     glOrtho (
> > >       -2.0 * ( GLfloat ) h / ( GLfloat ) w, 2.0 * ( GLfloat ) h /
> (
> > GLfloat
> > > ) w,
> > >       -2.0, 2.0,
> > >       -10.0, 10.0 );
> > >   }
> > >
> > >   glMatrixMode ( GL_MODELVIEW );
> > >
> > >   return;
> > > }
> > >
> > >
> > > void polygon ( int a, int b, int c, int d )
> > >
> > > {
> > >   glBegin ( GL_POLYGON );
> > >
> > >   glColor3fv ( colors[a] );
> > >   glNormal3fv ( normals[a] );
> > >   glVertex3fv ( vertices[a] );
> > >
> > >   glColor3fv ( colors[b] );
> > >   glNormal3fv ( normals[b] );
> > >   glVertex3fv ( vertices[b] );
> > >
> > >   glColor3fv ( colors[c] );
> > >   glNormal3fv ( normals[c] );
> > >   glVertex3fv ( vertices[c] );
> > >
> > >   glColor3fv ( colors[d] );
> > >   glNormal3fv ( normals[d] );
> > >   glVertex3fv ( vertices[d] );
> > >
> > >   glEnd ( );
> > >
> > >   return;
> > > }
> > >
> > >
> > > void spinCube ( )
> > >
> > > {
> > >   theta[axis] = theta[axis] + 0.020;
> > >   if ( 360.0 < theta[axis] )
> > >   {
> > >     theta[axis] = theta[axis] - 360.0;
> > >   }
> > >   glutPostRedisplay ( );
> > >
> > >   return;
> > > }
> > >
> > > -------------------------------
> > >
> > > I compiled using command
> > > rvcemcabrp at rvcemcabrp-laptop:~/Desktop/opengl$ g++
> > > rotating_cube_display_open_gl.C -lm -lGL -lGLU -lglut
> > >
> > > then i tried  this
> > >
> > > ./a.out
> > > X Error of failed request:  BadRequest (invalid request code or no
> such
> > > operation)
> > >   Major opcode of failed request:  143 (GLX)
> > >   Minor opcode of failed request:  19 (X_GLXQueryServerString)
> > >   Serial number of failed request:  12
> > >   Current serial number in output stream:  12
> > > rvcemcabrp at rvcemcabrp-laptop:~/Desktop/opengl$
> > >
> > > i want solution for any of the following problems
> > >
> > >
> > > ------------------ this is for one of the labs for BE ( computer
> science
> > > students -- VI semester )
> > >  Implement the following programs in C / C++
> > >
> > >
> > >    1. Program to recursively subdivide a tetrahedron to from 3D
> > Sierpinski
> > >    gasket. The number of recursive steps is to be specified by the
> user.
> > >    2. Program to implement Liang-Barsky line clipping algorithm.
> > >
> > > 3.     Program to draw a color cube and spin it using OpenGL
> > transformation
> > > matrices.
> > >
> > > 4.   Program to create a house like figure and rotate it about a
> given
> > > fixed point using   OpenGL functions.
> > >
> > > 5.    Program to implement the Cohen-Sutherland line-clipping
> algorithm.
> > > Make provision    to specify the input line, window for clipping
> and view
> > > port for displaying the clipped image.
> > >
> > > 6.    Program to create a cylinder and a parallelepiped by
> extruding a
> > > circle and
> > >
> > >      quadrilateral respectively. Allow the user to specify the
> circle and
> > > the quadrilateral.
> > >
> > > 7    Program, using OpenGL functions, to draw a simple shaded
> scene
> > > consisting of a tea pot on a table. Define suitably the position
> and
> > > properties of the light source along with the properties of the
> > properties
> > > of the surfaces of the solid object used in the scene.
> > >
> > >    1. Program to draw a color cube and allow the user to move the
> camera
> > >    suitably to experiment with perspective viewing. Use OpenGL
> functions.
> > >    2. Program to fill any given polygon using scan-line area
> filling
> > >    algorithm. (Use appropriate data structures.)
> > >    3.  Program to display a set of values { fij } as a rectangular
> mesh.
> > >
> > >
> > > Part B
> > >
> > > Develop a suitable Graphics package to implement the skills learnt
> in the
> > > theory and the exercises indicated in Part A. Use the OpenGL.
> > >
> > >
> > >
> >
> > i have ran opengl progs :) i ran it as
> > gcc -lglut <filename.c> -o <output file name >
> >
> > more on this blog
> >
> >
> http://techietipsandtricks.blogspot.com/2009/03/opengl-using-gcc-in-ubuntu.html
> >
> 
> i followed your instructions,
> still i am getting the following error ,
> 
> rvcemcabrp at rvcemcabrp-laptop:~/Desktop/opengl$ g++ -lm -lGL -lGLU
> -lglut
> rotating_cube_display_open_gl.C -o out3d
> rvcemcabrp at rvcemcabrp-laptop:~/Desktop/opengl$ ls
> a.out                              rotating_cube_display_open_gl.csh~
> out3d                              rotating_cube_display_open_gl.o
> rotating_cube_display_open_gl.C    rotating_cube.png
> rotating_cube_display_open_gl.csh
> rvcemcabrp at rvcemcabrp-laptop:~/Desktop/opengl$ out3d
> bash: out3d: command not found
> rvcemcabrp at rvcemcabrp-laptop:~/Desktop/opengl$ ./out3d
> X Error of failed request:  BadRequest (invalid request code or no
> such
> operation)
>   Major opcode of failed request:  143 (GLX)
>   Minor opcode of failed request:  19 (X_GLXQueryServerString)
>   Serial number of failed request:  12
>   Current serial number in output stream:  12
> rvcemcabrp at rvcemcabrp-laptop:~/Desktop/opengl$
Just check whether you have the code correct or not, as i can run it
perfectly here, i tried the code out from the links you gave, i tried
the spinning cube one, and also check whether you have correct header
files and packages.*From the program i can say that freeglut is missing,
some of the API's used use some functions of freeglut *. If you still
couldn't get it right, mail me the code you are using, verbatim.And
there is no need of doing -lm -lGL -lGLU , only lglut will do for the
spinning cube program.Btw I am a student of CS 6th sem :)



More information about the FSUG-Bangalore mailing list