Я сделал этот проект на Qt, и мне нужно использовать OpenGL для моделирования здания.У меня есть этот код ниже, чтобы открыть окно и нарисовать куб на экране.Я хотел бы знать, как я могу пройти через эту сцену, используя клавиатуру?Например, я нажимаю стрелку вправо, и «камера» будет указывать в направлении вправо, стрелка влево - влево, стрелка вверх будет «входить» (план -z), а стрелка вниз «возвращается» (план z).
Может кто-нибудь объяснить мне, как это работает?Какой-нибудь учебник для этого?Любая помощь?Я пытался использовать его с избытком 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;
}
Есть ли простой способ сделать это?Я впервые использую эти инструменты.(Объясните, что я 5лет, хе-хе)