PDA

View Full Version : HELP



07-07-2001, 11:14 AM
Can anyone tell me where I can find example problems. I have created the gasket program and it does not work. A rotating cube program, it also does not work. The book that I am using is incredibly advanced for a user like myself. I cannot figure out where I am going wrong. Any examples that I can work from would be helpful.
http://www.opengl.org/discussion_boards/ubb/confused.gif
Lost

DFrey
07-07-2001, 11:21 AM
http://nehe.gamedev.net/

Cardinal
07-07-2001, 09:56 PM
to cause a gasket to rotate (or anything else) around a centerpoint.




//editing vertex transforms
glMatrixMode(GL_MODELVIEW);
//store original transformations
glPushMatrix();
//Load fresh identity matrix
glLoadIdentity();
//translate centerpoint to origin
glTranslatef(-x,-y,-z);
//rotate how ever many degrees
glRotatef(degree,0,0,1);
//translate back to starting centerpoint
glTranslatef(x,y,z);
//place the gasket
Gasket.Drawme();
//restore origin transform matrix
glPopMatrix();

when the gasket is drawn, it is affected by the compilation of the previous transformations. So its vertices are moved, rotated, then moved back. As long as you increment degrees, the gasket should appear to rotate around x,y,z.

I hope i got all that in the right order http://www.opengl.org/discussion_boards/ubb/smile.gif
Cardinal

ron
07-08-2001, 10:20 AM
//command to compile under gnu under Linux and Windows
//g++ hello.c -lopengl32 -lglu32 -lglut32


//hello.c
#include <windows.h> // if you use Linux #include <X11/Xlib.h>
// #include <GL/glx.h>
#include <GL/glut.h>
#include <stdlib.h>

void display(void){
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0, 1.0, 1.0);
glBegin(GL_POLYGON);
glVertex3f(0.25, 0.25, 0.0);
glVertex3f(0.75, 0.25, 0.0);
glVertex3f(0.75, 0.75, 0.0);
glVertex3f(0.25, 0.75, 0.0);
glEnd();
glFlush();
}

void init(void)
{
glClearColor(0.0, 0.0, 0.0, 0.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
}

int main(int argc, char** argv){
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(250, 250);
glutInitWindowPosition(100, 100);
glutCreateWindow("hello");
init();
glutDisplayFunc(display);
glutMainLoop();
return 0;
}