我做了(平移,旋轉,平移),但它仍圍繞原點旋轉。我所做的只是當你按下r鍵時,這個技巧就開始了(翻譯,旋轉,翻譯)。其結果是,它仍然是圍繞原點OpenGL,圍繞一個點的旋轉在原點附近仍然不起作用
#include <gl/glut.h>
void OnKeyPress(unsigned char key, int x, int y)
{
if (key == 27)
exit(0);
switch(key)
{
case 'r':
case 'R':
// trick start here *********************
glTranslatef(-60,-20,0);
glRotatef(10, 0, 0, 1);
glTranslatef(60, 20, 0);
glutPostRedisplay();
break;
};
}
void OnDisplay()
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0.0f,0.5f,1.0f);
glBegin(GL_TRIANGLES);
glVertex2f(20, 20);
glVertex2f(60, 20);
glVertex2f(20, 100);
glEnd();
glFlush();
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGBA);
glutInitWindowPosition(100, 100);
glutInitWindowSize(800, 600);
glutCreateWindow("OpenGL Lab1");
glutDisplayFunc(OnDisplay);
glutKeyboardFunc(OnKeyPress);
glClearColor(1.0, 1.0, 1.0, 0.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(-100, 100, -100, 100);
glutMainLoop();
return 0;
}
有什麼結果呢?此外,作爲一個側面說明看看'gluLookAt'。 – jli 2012-03-20 22:03:54
結果是,它仍在原點附近旋轉 – YoungSalafi 2012-03-20 22:09:37
@YoungSalafi不要摧毀你的問題。我已經回滾了。你標記的答案是正確的。這應該足以說明問題。 – Bart 2012-03-21 17:37:38