在 Qt 中,可以使用 QOpenGLWidget 接口替换 gluNewQuadric() 函数来绘制二维图形。以下示例代码展示了如何使用 QOpenGLWidget 绘制一个红色的四边形。

#include <QOpenGLWidget>
#include <QOpenGLFunctions>

class MyOpenGLWidget : public QOpenGLWidget, protected QOpenGLFunctions
{
public:
    MyOpenGLWidget(QWidget *parent = nullptr) : QOpenGLWidget(parent) {}

protected:
    void initializeGL() override
    {
        initializeOpenGLFunctions();
    }

    void paintGL() override
    {
        glClear(GL_COLOR_BUFFER_BIT);

        // 绘制二维图形
        glBegin(GL_QUADS);
        glColor3f(1.0, 0.0, 0.0); // 设置颜色为红色
        glVertex2f(-0.5, -0.5);  // 设置顶点坐标
        glVertex2f(0.5, -0.5);
        glVertex2f(0.5, 0.5);
        glVertex2f(-0.5, 0.5);
        glEnd();
    }
};

在上面的代码中,我们创建了一个自定义的 OpenGL 窗口部件 MyOpenGLWidget,并重写了它的 initializeGL() 和 paintGL() 函数。在 initializeGL() 函数中,我们调用了 initializeOpenGLFunctions() 来初始化 OpenGL 函数。在 paintGL() 函数中,我们使用 OpenGL 的绘制函数来绘制二维图形,其中 glBegin(GL_QUADS) 表示开始绘制四边形,glColor3f(1.0, 0.0, 0.0) 表示设置颜色为红色,glVertex2f() 表示设置顶点坐标,glEnd() 表示结束绘制。

将 MyOpenGLWidget 添加到 Qt 的窗口中,可以通过如下代码实现:

#include <QApplication>
#include <QMainWindow>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QMainWindow mainWindow;
    MyOpenGLWidget *openGLWidget = new MyOpenGLWidget(&mainWindow);
    mainWindow.setCentralWidget(openGLWidget);
    mainWindow.show();

    return a.exec();
}

在上面的代码中,我们创建了一个主窗口 QMainWindow,并将 MyOpenGLWidget 作为中央部件添加到主窗口中,然后显示主窗口。

这样,就使用 QOpenGLWidget 接口替换了 gluNewQuadric() 函数来绘制二维图形。

Qt QOpenGLWidget 绘制二维图形 - 替代 gluNewQuadric()

原文地址: https://www.cveoy.top/t/topic/pltj 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录