如何使用OpenGL和Qt移动场景视图?

时间:2018-05-07 02:08:03

标签: c++ qt opengl graphics 3d

我在Qt上制作了这个项目,我必须使用OpenGL来建模。我有这个代码,打开一个窗口,在屏幕上绘制一个立方体。我想知道如何使用键盘浏览这个场景?例如,我按向右箭头,“相机”将指向右方向,向左箭头指向左方向,向上箭头将“进入”(-z计划),向下箭头将“返回”(z计划)。< / p>

任何人都可以向我解释这是如何运作的吗?一些教程为此?有帮助吗? 我试图使用它lib lib,但如果Qt有一些简单的功能来做到这一点,请告诉我。

glwidget.cpp:

#include "glwidget.h"
#include <GLUT/glut.h>


GLWidget::GLWidget(QWidget *parent) : QGLWidget(parent) {

}

void GLWidget::initializeGL() {

    glClearColor(0.2, 0.3, 0.4, 0.1);
    glEnable(GL_DEPTH_TEST);
    glEnable(GL_LIGHT0);
    glEnable(GL_LIGHTING);
    glEnable(GL_COLOR_MATERIAL);

}

void GLWidget::paintGL() {

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    glutWireCube(0.6);

}

void GLWidget::resizeGL(int w, int h) {

    glViewport(0, 0, w, h);

    glMatrixMode(GL_PROJECTION);

    glLoadIdentity();

    gluPerspective(45, (float)w/h, 0.01, 100.0);


    glMatrixMode(GL_MODELVIEW);

    glLoadIdentity();

    gluLookAt(0,0,5, 0,0,0, 0,1,0);

}

main.cpp中:

#include "mainwindow.h"
#include <QApplication>
#include <GLUT/glut.h>


int main(int argc, char *argv[])
{
    glutInit(&argc, argv);
    QApplication a(argc, argv);
    MainWindow w;

    w.show();

    return a.exec();
}

mainwindow.cpp:

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}

有什么简单的方法可以做到这一点吗?这是我第一次使用这些工具。 (解释我好像是嘿嘿)

0 个答案:

没有答案