0

いくつかの方程式を解いて結果を OpenGL ウィンドウに描画するシミュレーションをプログラムしました。シミュレーションは時間とともに継続的に進化します。ポイントを動的に追加したいと思います。次のようなコードを使用しています。

QwtPlot* plot = new...;
QwtPlotCurve* plotdata = new...;
QVector<QPoint> data = getData();
plotdata->setSamples(data);

これにより、プロットがすべてのポイントをリセットします。単純にポイントを追加できますか?

努力してくれてありがとう:-)


それを行う方法がない場合は、それを聞きたいです。教えてください!

4

2 に答える 2

0

わかった。その抽象的な方法でそれを行う方法はありません。しかし、方法を思い出すことができます:

void QwtPlotCurve::setRawSamples();

これが最も安価な方法です。データのコピーは必要ありません。

乾杯 :)

于 2012-04-21T17:20:55.850 に答える
0

QTimerで調整可能な間隔で を使用するのはどうQSpinBoxですか ?

    QTimer *timer = new QTimer(this);
    connect(timer, SIGNAL(timeout()), this, SLOT(updatePlot()));
    timer->start(5000); //adjust from GUI with timer->setInterval(newValue)


    ...

    void updatePlot(){
        // QSettings initialized somewhere
        int maxSamples = settings.value("plot/maxSamples", 100).toInt();
        QVector<QPoint> data = getData(maxSamples);  // get this many samples
        plotdata->setSamples(data);

    }
于 2012-04-20T23:21:16.133 に答える