[FSUG-Bangalore] any body worked with opengl? any help is appretiated

renuka prasad renukaprasadb at gmail.com
Thu Mar 26 21:00:12 IST 2009


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/~burkardt/cpp_src/rotating_cube_display_open_gl/rotating_cube_display_open_gl.html

# 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 )
SYSTEM SOFTWARE  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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mm.gnu.org.in/pipermail/fsug-bangalore/attachments/20090326/66f38909/attachment.htm 


More information about the FSUG-Bangalore mailing list