0

私はLinux[GCCコンパイラ]で作業しています。コンパイルにはCDT+QTを使用したEclipseを使用しています。QTウィンドウとOpenGL関数を使用してDICOM画像のシーケンスを表示する必要があります。plsは、画像のシーケンスを表示する関数を教えてくれます。 3つの関数を使用しています1)OpenGL関数を初期化するためにinitializeGL()。2)GlutのglutInitWindowSize()の代わりにresizeGL()。3)GlutのglutDisplayFunc()の代わりにpaintGL()。4)GlutのglutPostRedisplay()の代わりにupdateGL()。

また、plsはQT glutMainLoop()のGlutと同等の関数を教えてくれます。glutSwapBuffers(); glutInitDisplayMode(); glutIdleFunc(idle); glutInit(&argc、argv);

4

2 に答える 2

4

QGLWidget をペイント デバイスとして使用するだけで、イメージを簡単に表示できるはずです。これにより、特定のユースケースに応じて、実装が簡素化される場合があります。これにより、Qt の OpenGL ペイント エンジンを使用して画像が描画されます。次のようなもので、画像を表示できるはずです。

class CustomWidget : public QGLWidget
{ 
public:
    CustomWidget(QWidget* parent=0) : QGLWidget(parent), pix("foo.jpg")
    {

    }

protected:
    void paintEvent(QPaintEvent *pe)
    {
        QPainter p(this);
        // maybe update the pixmap
        p.drawPixmap(this->rect(),pix);
    }

private:
    QPixmap pix;
};

3D シーンに配置する必要がある場合は、おそらくイメージをテクスチャとしてロードする必要があります。Qt OpenGL デモの中には、「Boxes」デモなど、出発点を提供できるはずです。

http://doc.trolltech.com/4.6-snapshot/demos-boxes.html

于 2009-05-28T14:19:25.450 に答える
0

Qt は既に gluSwapBuffers、glutInitDisplayMode、および glutInit を処理しているので、それらは必要ありません。また、関数のマッピングが正しいかどうかもわかりません。簡単に言えば、Qt と Glut は GL を別の方法で考えているため、おそらく同じにする必要があり (別の方法で考える必要があります)、Qt メソッドはほとんど自明です。KGLEngine またはその他の Qt +GL プロジェクトのコードをダウンロードして、それがどのように機能するかをよりよく理解することをお勧めします。

于 2009-05-28T08:35:23.820 に答える