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

renuka prasad renukaprasadb at gmail.com
Thu Mar 26 21:04:42 IST 2009


2009/3/26 renuka prasad <renukaprasadb at gmail.com>

> 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/~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>
>

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.
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mm.gnu.org.in/pipermail/fsug-bangalore/attachments/20090326/208d9cb6/attachment-0001.htm 


More information about the FSUG-Bangalore mailing list