qt moduł opengl
Ostatnio zmodyfikowano 2012-07-12 19:11
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: #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.cpp: #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: #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.cpp: #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 ); }
MainWindow::~MainWindow() { delete ui; }
main.cpp: #include <QtGui/QApplication> #include "mainwindow.h"
int main( int argc, char * argv[] ) { QApplication a( argc, argv ); MainWindow w; w.show(); return a.exec(); }
|
|
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 |
|
« 1 » |