为什么 glOrtho 没有改变任何东西?
Why is glOrtho not changing anything?
即使我已经调用了 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
上注册了这个
OpenGL 不是场景图,它是绘图 API。仅更改投影矩阵将无济于事。你还得重新画东西。
即使我已经调用了 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
OpenGL 不是场景图,它是绘图 API。仅更改投影矩阵将无济于事。你还得重新画东西。