编程笔记

QOpenGLWidget,视口变化时如何处理?

7/23/2025 12:43:22 PM
0

当窗口或控件大小发生变化的时候,视口和投影矩阵通常需要被更新,以确保渲染内容能够正确适应新的窗口尺寸。

如何实现

重写resizeGL(int w,int h);

void MyOpenGLWidget::resizeGL(int w, int h)
{
    // 设置视口到新的窗口大小
    glViewport(0, 0, w, h);

    // 更新投影矩阵(这里用透视投影为例)
    projectionMatrix.setToIdentity();
    projectionMatrix.perspective(45.0f, float(w)/float(h), 0.1f, 100.0f);

    // 可选:如果你有 camera 对象,也可以调整 aspect ratio
    camera.setAspectRatio(float(w)/float(h));
}

友情链接

Copyright @2021-2025 关于