Misusz 0 Share Posted May 7, 2009 Sziasztok! OpenGL segítségével kellene C++ környezetben megoldanom egy mozgó jármûvet. Sajnos elméleti oktatást nem kaptunk, innen-onnan próbálom összeszedni, hogy hogyan kellene. A jármû megrajzolásáig eljutottam, csak az animálást nem tudom megoldani. Hogyan tudnám azt elérni, hogy egy körív mentén haladjon az objektum körbe-körbe? Milyen függvényeket, utasításokat kell használni és hogyan? Erre vonatkozólag semmi segítséget sem találtam sajnos. Kérem, aki tud segítsen! Link to comment Share on other sites More sharing options...
Misusz 0 Author Share Posted May 9, 2009 Több napos keresgélés után sikerült megoldanom a problémát, azért leírom itt, hátha valaki hozzám hasonló hasznát veszi még. A jármű helyett itt csak egy sárga téglatestet jelenítettem meg a kód rövidítése miatt. #include <GL/glut.h> float rota=-30; void display(void){ glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glRotated(30,1,0,0); glRotated(rota,0,1,0); glColor3d(1,1,0); glTranslated(40,0,0); glScalef(13,13,26); glutSolidCube(1); glFlush(); glutSwapBuffers(); } void init(void){ glClearColor(0.2f, 0.9f,0.3f, 1.0f); glEnable(GL_DEPTH_TEST); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(-70,70,-70,70,-80,40); } static void key(unsigned char k, int x, int y) { switch (k) { case 27: exit(0); break; } } void Idle (void){ rota+=0.02; display(); } int main(int argc, char* argv[]){ glutInit(&argc, argv); glutInitDisplayMode(GLUT_RGBA|GLUT_DEPTH); glutInitWindowSize(400,400); glutInitWindowPosition(0,0); glutCreateWindow("Mozgo jarmu"); glutDisplayFunc(display); glutIdleFunc(Idle); glutKeyboardFunc(key); init(); glutMainLoop(); return 0; } Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now