PDA

View Full Version : Error in my program



maxstoto
09-20-2010, 06:17 PM
My program have an error.. i didnt know to fix it..Please help me...

Here is my source code..



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}};

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();

}

void colorcube(void)
{
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);
}

static GLfloat theta[] = {0.0,0.0,0.0};

static GLint axis = 2;

void display(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glRotate(theta[0],1.0,0.0,0.0);
glRotate(theta[1],0.0,1.0,0.0);
glRotate(theta[2],0.0,0.0,1.0);

colorcube();

glFlush();
glutSwapBuffers();
}

void spinCube()
{
theta[axis]+=2.0;
if(theta[axis]>360.0)theta[axis]-=360.0;
/*display();*/
glutPostRedisplay();
}

void mouse(int btn,int state,intx,int y)
{
if(btn==GLUT_LEFT_BUTTON && state ==GLUT_DOWN)axis=0;
if(btn==GLUT_MIDDLE_BUTTON && state == GLUT_DOWN0axis=1;
if(btn==GLUT_RIGHT_BUTTON && state == GLUT_DONW)axis =2;
}

void myReshpae(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)w / (GLfloat)h, 2.0 * (GLfloat)w / (GLfloat)h, -2.0,2.0,-10.0,10.0);
glMatrixMode(GL_MODELVIEW);
}

void main(int argc,char **argv)
{
glutInit(&amp;argc,argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
glutInitWindowSize(500,500);
glutCreateWindow(myReshape);
glutDisplayFunc(display);
glutIdleFunc(spinCube);
glutMouseFunc(mouse);
glEnable(GL_DEPTH_TEST);
glutMainLoop();
}

shadowayex
09-20-2010, 08:00 PM
A few things:

A) Use code tags. Makes it easier to read.

B) I would recommend learning vertex arrays. It'd make your code more efficient.

and C) You spelled myReshape wrong in your creation of the function. I would suggest always looking for those types of mistakes. Not many people want to debug your code for you.

I'm not trying to be cynical. Just trying to help you learn better.

PascalM123
09-21-2010, 07:56 AM
I would help if we knew what error is generated.

But as stated above, one error is the type with myReshape.