目录
一、成果展示:
二、代码展示:
1、main.cpp
2、MyGLWidget.h
3、MyGLWidget.cpp
三、编译错误 解析:
1、gluPerspective 和 gluLookAt 找不到标识符
2、error: LNK2019: 无法解析的外部符号 __imp_glBegin等
一、成果展示:
二、代码展示:
1、main.cpp
#include <QtWidgets/QApplication> int main(int argc, char *argv[]) QApplication a(argc, argv);
2、MyGLWidget.h
class MyGLWidget : public QGLWidget explicit MyGLWidget(QWidget *parent = 0); void resizeGL(int w, int h); void keyPressEvent(QKeyEvent *); void paintEvent(QPaintEvent *); void setupViewport(int w, int h); GLfloat translate, xRot, yRot, zRot;
3、MyGLWidget.cpp
MyGLWidget::MyGLWidget(QWidget *parent) : xRot = yRot = zRot = 0.0; setAutoFillBackground(false); void MyGLWidget::initializeGL() void MyGLWidget::resizeGL(int w, int h) void MyGLWidget::paintGL() void MyGLWidget::keyPressEvent(QKeyEvent *event) QGLWidget::keyPressEvent(event); void MyGLWidget::paintEvent(QPaintEvent *) glMatrixMode(GL_MODELVIEW); // 以下是以前initializeGL()函数中的全部内容 glClearColor(0.0, 0.0, 0.0, 0.0); textures[0] = bindTexture(QPixmap(":/LHCGraphicsView/Resources/side1.png")); textures[1] = bindTexture(QPixmap(":/LHCGraphicsView/Resources/side2.png")); textures[2] = bindTexture(QPixmap(":/LHCGraphicsView/Resources/side3.png")); // 该函数中是以前resizeGL()函数中的全部内容 setupViewport(width(), height()); // 以下是以前paintGL()函数中的全部内容 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glTranslatef(0.0, 0.0, translate); glRotatef(xRot, 1.0, 0.0, 0.0); glRotatef(yRot, 0.0, 1.0, 0.0); glRotatef(zRot, 0.0, 0.0, 1.0); glBindTexture(GL_TEXTURE_2D, textures[2]); glVertex3f(1.0, 1.0, 1.0); glVertex3f(1.0, 1.0, -1.0); glVertex3f(-1.0, 1.0, -1.0); glVertex3f(-1.0, 1.0, 1.0); glBindTexture(GL_TEXTURE_2D, textures[1]); glVertex3f(1.0, -1.0, 1.0); glVertex3f(1.0, -1.0, -1.0); glVertex3f(-1.0, -1.0, -1.0); glVertex3f(-1.0, -1.0, 1.0); glBindTexture(GL_TEXTURE_2D, textures[0]); glVertex3f(1.0, 1.0, 1.0); glVertex3f(-1.0, 1.0, 1.0); glVertex3f(-1.0, -1.0, 1.0); glVertex3f(1.0, -1.0, 1.0); glDisable(GL_DEPTH_TEST); glDisable(GL_TEXTURE_2D); glMatrixMode(GL_MODELVIEW); painter.setRenderHint(QPainter::Antialiasing); painter.setBrush(Qt::red); painter.drawRect(0, 0, 100, 100); void MyGLWidget::setupViewport(int w, int h) glViewport(0, 0, (GLint)w, (GLint)h); glMatrixMode(GL_PROJECTION); gluPerspective(45.0, (GLfloat)w/(GLfloat)h, 0.1, 100.0); glMatrixMode(GL_MODELVIEW);
4、图片资源
三、编译错误 解析:
1、gluPerspective 和 gluLookAt 找不到标识符
请添加头文件 #include <GL/glu.h>
且,必须要加在 #include <QGLWidget> 的后面
2、error: LNK2019: 无法解析的外部符号 __imp_glBegin等
我用的 vs+qt 开发
链接器 -- 常规 -- 附加库目录--添加 D:\Windows Kits\10\Lib\10.0.17763.0\um\x64 (vs其实已经继承了该路径。个人根据自己的windows kits路径来找)
链接器 -- 输入 -- 附加依赖项 : OpenGL32.Lib; GlU32.lib
|