Yamamoto's Laboratory
 
Version 3
 
Version 4
OpenGL(2D)
 
 

Qt4OpenGLグラフィックライブラリーでお絵かき

我々は,Qtでの描画にはOpenGLを使っています.その使い方のメモです.ここでは,二次元の絵の描き方を中心に説明します.ここでプログラムは,主にQtのVersion 4.3で実行の確認を行いました.

目次


初めての OpenGL

実行例

まずは,できるだけ簡単なプログラムを作成して,使ってみましょう.次のような折れ線を描くプログラムです.

OpenGLによる折れ線
OpenGLによる折れ線

プログラムソース

プログラムは,3つのファイルから構成されます.描画クラスのヘッダーファイルと描画クラスのプログラム,メイン関数です.Qtでプログラムを作る場合の一般的な構成です.ここではOpenGLを使うために,QGLWidgetを継承したsimple_lineと言うクラス作成しています.

描画クラスのヘッダーファイル(simple_line.h).

001   #ifndef SIMPLE_LINE_H
002   #define SIMPLE_LINE_H
003   #include <QtOpenGL>
004   
005   class simple_line:public QGLWidget
006   {
007     Q_OBJECT
008   
009     public:
010     simple_line(QWidget *parent=0);
011     
012    protected:
013     void initializeGL();
014     void paintGL();
015   };
016   
017   #endif

OpenGLの命令を使って絵を描くために,QGLWidgetを継承したクラスを作成します.そのクラスでOpenGLの命令を使うだけです.

描画クラス(simple_line.cpp).

001   #include "simple_line.h"
002   
003   //=======================================================================
004   // コンストラクター
005   //=======================================================================
006   simple_line::simple_line(QWidget *parent):QGLWidget(parent)
007   {
008   }
009   
010   //=======================================================================
011   // OpenGLの初期化
012   //=======================================================================
013   void simple_line::initializeGL()
014   {
015     glClearColor(1.0, 1.0, 1.0, 1.0);          // 画面クリアーの色(背景色)  RGBA
016   }
017   
018   
019   //=======================================================================
020   // 絵を描くメンバー関数
021   //=======================================================================
022   void simple_line::paintGL()
023   {
024     glClear(GL_COLOR_BUFFER_BIT);
025   
026     // ---- 直線 ---------
027     glColor3d(1.0, 0.0, 0.0);            // 色指定(RGB)
028     glBegin(GL_LINE_STRIP);              // 直線を描き始める
029     glVertex2d(0.2,  0.1);               // 開始の座標
030     glVertex2d(0.4,  0.8);
031     glVertex2d(0.8,  0.5);               // 終了の座標
032     glEnd();                             // 直線の終了
033   }

メイン関数(main.cpp).

001   #include <QApplication>
002   #include "simple_line.h"
003   
004   int main(int argc, char *argv[])
005   {
006     QApplication appli(argc, argv);
007   
008     simple_line *gl = new simple_line;
009     gl->show();
010   
011     return appli.exec();
012   }

コンパイル方法

コンパイルは以下のようにします.

  1. プロジェクトファイルを作成する.
    $ qmake-qt4 -project
  2. できあがったプロジェクトファイル(*.pro)を編集する.OpenGLを使うためには,以下を追加する.
    QT += opengl
  3. Makefileを作成する.
    $ qmake-qt4
  4. 実行ファイルを作成する.
    $ make

以下は工事中



no counter