即使我已经调用了glOrtho(),该函数也不会更改任何内容。代码有什么问题?我错过了什么吗?
void glKeyCallback(unsigned char key, int x, int y){
if (key == 'z'){
width -= 10; height -= 10;
cout << "Z" << endl;
cout << width << " " << height << endl;
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, 800, 600, 0, 0, 1);
glMatrixMode(GL_MODELVIEW);
}else if (key == 'x'){
width += 10; height += 10;
cout << "X" << endl;
cout << width << " " << height << endl;
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, 100, 100, 0, 0, 1);
glMatrixMode(GL_MODELVIEW);
}
}
当我按z或x时,我希望场景可以放大/缩小。但这并没有改变任何东西。作为记录,我已经在glutKeyboardFunc
答案 0 :(得分:1)
OpenGL不是场景图,而是图形API。仅更改投影矩阵将无济于事。您还必须重新绘制内容。