QtとC++とOpenGLを使って三角形を表示するー
I wrote: 2016/11/10
I updated : 2017/06/03
※ここに書かれている方法は古いので、こっちでやったほうがベターです。
QtとC++とOpenGLで三角形、正確には直角三角形を表示するよ!
OpenGLといえばGLUTやGLFWなどが有名かもしれませんが、個人的に慣れているQtを使います。
すごく簡単なサンプルプログラムなのでコードも短くて分かりやすいかなと思います。
少し解説するとQGLWidgetを継承したクラスは
①initializeGL()
②resizeGL(int w, int h)
③paintGL()
を実装します。
①は何もしてないです。私はしてないだけで何かをしてもOKです。
②は描画サイズを設定しています。
③ではまずglClear(GL_COLOR_BUFFER_BIT)で背景を初期化します。それでglBegin(GL_TRIANGLES)とglEnd()の間で直角三角形を描画します。三角形は3点を持つのでglVertex2dが3つあります。最後にglFlush()で完了です。
以下はコード
#include <QApplication> #include <QGLWidget> class Sample : public QGLWidget { private: public: Sample(QWidget *parent = NULL) : QGLWidget(parent) { this->setWindowTitle("Sample"); this->resize(400, 400); } protected: void initializeGL() { } void resizeGL(int w, int h) { glViewport(0, 0, w, h); } void paintGL() { glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_TRIANGLES); glVertex2d(-0.9, -0.9); glVertex2d(0.9, -0.9); glVertex2d(0.9, 0.9); glEnd(); glFlush(); } }; int main (int argc, char* argv[]) { QApplication app(argc, argv); Sample sample; sample.show(); return app.exec(); }