Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

qt moduł opengl

Ostatnio zmodyfikowano 2012-07-12 19:11
Autor Wiadomość
anonim
Temat założony przez niniejszego użytkownika
qt moduł opengl
» 2012-07-12 16:47:02
Witam!
Mam taki kod, z tego co mi się wydaje, to program powinien wyświetlić punkt(kwadrat) o boku 50, jednak ten nic nie wyświetla
(wyświetla okno qt, na nim okno opengl, ale brak kwadracika  )

glwidget.h:

C/C++
#ifndef GLWIDGET_H
#define GLWIDGET_H

#include <QtOpenGL/QGLWidget>

class GLWidget
    : public QGLWidget
{
    Q_OBJECT
public:
    explicit GLWidget( QWidget * parent = 0 );
   
    signals:
   
public slots:
   
protected:
    void initializeGL();
    void paintGL();
    void resizeGL( int width, int height );
    void mousePressEvent( QMouseEvent * event );
    void mouseMoveEvent( QMouseEvent * event );
   
private:
    GLfloat rotatex;
    GLfloat rotatey;
    QPoint mousePos;
   
};

#endif // GLWIDGET_H

glwidget.cpp:

C/C++
#include "glwidget.h"

GLWidget::GLWidget( QWidget * parent )
    : QGLWidget( parent )
{
    rotatex = 0.0;
    rotatey = 0.0;
}

void GLWidget::initializeGL()
{
    glClearColor( 1.0, 1.0, 1.0, 1.0 );
    glEnable( GL_DEPTH_TEST );
}

void GLWidget::paintGL()
{
    glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
    glLoadIdentity();
    glTranslatef( 0.0, 0.0, 0.5 );
    glRotatef( rotatex, 1.0, 0.0, 0.0 );
    glRotatef( rotatey, 0.0, 1.0, 0.0 );
    glPointSize( 50 );
    glBegin( GL_TRIANGLES );
    glColor3f( 1.0, 0.0, 0.0 );
    glVertex2i( 0, 0 );
   
    glEnd();
    glFlush();
}
void GLWidget::resizeGL( int width, int height )
{
    glViewport( 0, 0, width, height );
    glMatrixMode( GL_PROJECTION );
    glLoadIdentity();
    glFrustum( - 2.0, 2.0, - 2.0, 2.0, 3.0, 7.0 );
    glMatrixMode( GL_MODELVIEW );
}

void GLWidget::mouseMoveEvent( QMouseEvent * event )
{
   
}

void GLWidget::mousePressEvent( QMouseEvent * event )
{
   
}

mainwindow.h:

C/C++
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include<QtGui>

namespace Ui {
    class MainWindow;
}

class MainWindow
    : public QMainWindow
{
    Q_OBJECT
   
public:
    explicit MainWindow( QWidget * parent = 0 );
    ~MainWindow();
   
private:
    Ui::MainWindow * ui;
};

#endif // MAINWINDOW_H

mainwindow.cpp:

C/C++
#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow( QWidget * parent )
    : QMainWindow( parent )
    , ui( new Ui::MainWindow )
{
    ui->setupUi( this );
    setGeometry( 0, 0, QApplication::desktop()->width(), QApplication::desktop()->height() );
    setCentralWidget( ui->widget ); // widget z qtdesignera (klasa GLWidget)
}

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

main.cpp:

C/C++
#include <QtGui/QApplication>
#include "mainwindow.h"

int main( int argc, char * argv[] )
{
    QApplication a( argc, argv );
    MainWindow w;
    w.show();
   
    return a.exec();
}



 
P-59896
anonim
Temat założony przez niniejszego użytkownika
» 2012-07-12 19:11:21
kurde, nie ma to jak robić 3 wymiarowe transformacje na jednowymiarowym punkcie (Argh 2 godziny nad tym myślałem) - dlatego nie wyświetlał kwadratu
problem rozwiązany zamykam
P-59900
« 1 »
  Strona 1 z 1