如何在Qwidget的中心设计一个Triangle(在QT中使用OpenGl)

时间:2016-03-11 02:38:34

标签: c++ qt opengl

我有Ubuntu 14.04,我将在opengl中设计一个QT的三角形, 在这个视频中:[这个视频] [1]他设计了一个这样的三角形:

picture1(屏幕中心的三角形) 但是我,左边的三角形画如下:picture 2

有什么问题? 以及如何在中心设计三角形?
我的代码:

#include<brm.h>
#include<qgl.h>
brm::brm(QWidget *parent )
    : QGLWidget( parent)
{


}




void
brm::initializeGL(){

    glClearColor(0.2,0.2,0.2,1);
    glEnable(GL_DEPTH_TEST);
    glEnable(GL_CULL_FACE);

}

void brm::paintGL(){

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPushMatrix();
    glBegin(GL_TRIANGLES);
    glVertex2f(-1.f ,0.f );
    glVertex2f(1.f,0.f);
     glVertex2f(0.f,1.f);
    glEnd();

}

void brm::resize(int width , int height ){
    glViewport(
    0
    ,
    0
    , width, height);

}

和标题:

#ifndef BRM_H
#define BRM_H

#include <QGLWidget>

#include<qwidget.h>
class brm : public QGLWidget
{
    Q_OBJECT

public:

    explicit brm(QWidget *parent = 0);

    void initializeGL();
    void paintGL();
    void resize(int x , int y );


};

#endif // BRM_H

1 个答案:

答案 0 :(得分:0)

尝试替换

glPushMatrix();

通过

glMatrixMode(GL_PROJECTION);
glLoadIdentity()
glMatrixMode(GL_MODELVIEW);
glLoadIdentity()