-
Kann mir noch jemand helfen? Ich hab´s leider immer noch nicht rausbekommen, was ich falsch mache. Hat´s schonmal jemand kompiliert?
Vielen Dank!
-
Hallo,
Was willst du denn jetzt eigentlich machen? Zuerst war immer von einer Zoom-Funktion die rede, da ist es aber normal das man nicht in den Würfel hineinkommt. Jetzt wunderst du dich darüben. Ich hab in den letzten Posts schon alle Varianten aufgezählt die du zur Verfügung hast, welche du davon verwendest hängt davon ab was du erreichen willst.
-
Ich möchte nach wie vor in den Quader hineizoomen, was ja auch funktioniert, wenn er weiter "vorne" ist und ich verstehe nicht ganz, warum es so funktioniert und anders nicht.
PS: Die erste Frage war, wie man die Kameraposition auf der Z-Achse mit glTranslatef verschiebt.Geändert von üäpöol (16.08.11 um 17:49 Uhr)
-
Ich hab´s jetzt endlich geschafft. Man muss einfach die vorherige Rotation rückgänging machen und dann wiederholen. Hier der Code, für alle, die ein ähnliches Problem haben oder hatten:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
case WM_CREATE: hDC = GetDC ( hwnd ); iPF = ChoosePixelFormat ( hDC, &pfd ); SetPixelFormat ( hDC, iPF, &pfd ); hRC = wglCreateContext ( hDC ); wglMakeCurrent ( hDC, hRC ); glViewport ( 0, 0, ( GLsizei ) 800 , ( GLsizei ) 600 ); glMatrixMode ( GL_PROJECTION ); glLoadIdentity ( ); gluPerspective ( 45, aspectRatio, 0.1, 10000 ); glTranslatef ( 0, 0, -3 ); break; case WM_KEYDOWN: switch ( wParam ) { case VK_UP: glRotatef ( rotate, 0, 1, 0 ); glTranslatef ( 0, 0, 0.1 ); glRotatef ( -rotate, 0, 1, 0 ); glFlush ( ); SwapBuffers ( hDC ); InvalidateRect ( hwnd, NULL, true ); break; case VK_DOWN: glRotatef ( rotate, 0, 1, 0 ); glTranslatef ( 0, 0, -0.1 ); glRotatef ( -rotate, 0, 1, 0 ); glFlush ( ); SwapBuffers ( hDC ); InvalidateRect ( hwnd, NULL, true ); break; case VK_LEFT: glEnable(GL_DEPTH_TEST); glClear ( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); rotate = rotate + 5; glRotatef ( 5, 0, -1, 0 ); glFlush ( ); SwapBuffers ( hDC ); InvalidateRect ( hwnd, NULL, true ); break; case VK_RIGHT: glEnable(GL_DEPTH_TEST); glClear ( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); rotate = rotate - 5; glRotatef ( 5, 0, 1, 0 ); glFlush ( ); SwapBuffers ( hDC ); InvalidateRect ( hwnd, NULL, true ); break; }
Vielen Dank, an alle, die geholfen haben, also vorallem Steiner_B!
Ich habe auf jedenfall einiges gelernt.
Ähnliche Themen
-
JQuery Fancybox mit Script anpassen funtkioniert nicht ganz
Von Jan-Frederik Stieler im Forum Javascript & AjaxAntworten: 8Letzter Beitrag: 16.09.10, 13:11 -
php für Zoom funktioniert nicht
Von c4er im Forum PHPAntworten: 7Letzter Beitrag: 20.11.08, 14:41 -
Unterstützung für OpenGL Entwicklung mit Java via Netbeans und OpenGL Pack
Von Thomas Darimont im Forum JavaAntworten: 0Letzter Beitrag: 04.06.08, 15:13 -
cipher funtkioniert nicht so wie ich das will
Von jer1cho im Forum JavaAntworten: 2Letzter Beitrag: 13.08.07, 08:57 -
[C++ & OGL] Problem mit glRotatef und glTranslatef
Von Gothicfreak im Forum Borland CBuilder und VCLAntworten: 0Letzter Beitrag: 25.06.07, 19:02



14Danke

Zitieren
Login






