2017-01-12 16 views
0

ソースをオンラインで使用する私は、時間の経過とともにセンサ値のグラフ4をプロットすることに成功しましたが、センサーの値を使用してライブプロットをプロットし、前のプロット。変数sampleVectorは時間(X変数)に対する官能値(Y変数)を含む2D配列ですQtを使用して2D QVectorのデータにアクセス

5番目のプロットの式は Plot5 = -0.5 *(Plot0 + Plot1)...すべてサンプル

これを達成しようとしたのは私の試みですが、うまくいかなかったのです。 5番目のプロットは、2倍のx値を追加するように2倍の速さでプロットされたようです。それはまた私に "-0.5"のような値を乗算するのが好きではないようです。私はQtが新しく、 "sampleVector"のY値を操作して使用する方法を見つけられませんでした。 私は変数の形式をよく理解していません。

はあなたが数学的なポイントのように振る舞うQPointFを操作している、事前に

void Plot::plotSampleVector(QVector<QVector<QPointF> > sampleVector){ 

//*** length of the data 
const int sampleSize = sampleVector.length(); 

//***Append new values to "QVector<Plot *> d_plots" 
for (int ii=0; ii< sampleSize; i++){ 

    d_plots[0] -> AppendPoint(sampleVector.at(ii).at(0)); 
    d_plots[1] -> AppendPoint(sampleVector.at(ii).at(1)); 
    d_plots[2] -> AppendPoint(sampleVector.at(ii).at(2)); 
    d_plots[3] -> AppendPoint(sampleVector.at(ii).at(3)); 
//***Problem Code: 
    d_plots[4] -> AppendPoint(-0.5 * (sampleVector.at(ii).at(0) + sampleVector.at(ii).at(1))); 

    } 

//***Draw Curves 
    for (int ii=0; ii<5; ii++){ 
    d_plots[ii] ->DrawCurveSegment(sampleSize) 
    } 

} 

答えて

0

、ありがとうございました。あなたは

-0.5 * (sampleVector.at(ii).at(0) + sampleVector.at(ii).at(1)) 

を行うとき だからあなたはして新しいポイントを作成している:

x = -0.5 * (x_0 + x_1) 
y = -0.5 * (y_0 + y_1) 

しかし、あなたの質問から私が何をしたいと思うです:書くことができ

x = x_0 = x_1 
y = -0.5 * (y_0 + y_1) 

( x値が同じ場合):

QPointF(sampleVector.at(ii).at(0).x(), -0.5 * (sampleVector.at(ii).at(0).y() + sampleVector.at(ii).at(1).y())) 
関連する問題