راهنمایی برای شروع کار با openGL
-
p{direction: rtl ; text-align: right}. سلام دوستان :)
یک مرجع خوب برای شروع openGL تو Qt چی میتونه باشه؟ خود Qt چه کتابخونه هایی برای کارهای سه بعدی داره؟ در واقع یه کار خیلی ساده میخوام انجام بدم ولی نیاز به یک راهنمایی دارم که از کجا باید شروع کنم؟ :)
ممنون -
main.cpp
@
#include <QtGui/QApplication>
#include <QtOpenGL/QGLWidget>
#include "GLWidget.h"int main(int argc, char *argv[]) {
QApplication app(argc, argv); GLWidget window; window.resize(800,600); window.show(); return app.exec();
}
@GLWidget.h
@
#ifndef _GLWIDGET_H
#define _GLWIDGET_H#include <QtOpenGL/QGLWidget>
class GLWidget : public QGLWidget {
Q_OBJECT // must include this if you use Qt signals/slots
public:
GLWidget(QWidget *parent = NULL);protected:
void initializeGL();
void resizeGL(int w, int h);
void paintGL();
void mousePressEvent(QMouseEvent *event);
void mouseMoveEvent(QMouseEvent *event);
void keyPressEvent(QKeyEvent *event);
};#endif /* _GLWIDGET_H */
@GLWidget.cpp
@
#include <QtGui/QMouseEvent>
#include "GLWidget.h"GLWidget::GLWidget(QWidget *parent) : QGLWidget(parent) {
setMouseTracking(true);
}void GLWidget::initializeGL() {
glDisable(GL_TEXTURE_2D);
glDisable(GL_DEPTH_TEST);
glDisable(GL_COLOR_MATERIAL);
glEnable(GL_BLEND);
glEnable(GL_POLYGON_SMOOTH);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glClearColor(0, 0, 0, 0);
}void GLWidget::resizeGL(int w, int h) {
glViewport(0, 0, w, h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0, w, 0, h); // set origin to bottom left corner
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}void GLWidget::paintGL() {
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1,0,0);
glBegin(GL_POLYGON);
glVertex2f(0,0);
glVertex2f(100,500);
glVertex2f(500,100);
glEnd();
}void GLWidget::mousePressEvent(QMouseEvent *event) {
}
void GLWidget::mouseMoveEvent(QMouseEvent *event) {
printf("%d, %d\n", event->x(), event->y());
}void GLWidget::keyPressEvent(QKeyEvent* event) {
switch(event->key()) {
case Qt::Key_Escape:
close();
break;
default:
event->ignore();
break;
}
}
@ -
"http://doc.qt.digia.com/stable/opengl-hellogl.html":http://doc.qt.digia.com/stable/opengl-hellogl.html
"www.cs.tufts.edu/comp/175/support/Tutorial.pdf":www.cs.tufts.edu/comp/175/support/Tutorial.pdfhttp://