【问题标题】:Accessing the data in 2D QVector using Qt使用 Qt 访问 2D QVector 中的数据
【发布时间】:2017-01-12 12:27:20
【问题描述】:

使用在线资源,我设法随时间绘制了 4 个传感器值图,但是我想使用来自传感器的值绘制一个实时图,使用之前的图的值绘制第 5 个图。变量 sampleVector 是一个二维数组,包含随时间变化的感官值(Y 变量)(X 变量)

第 5 个图的公式是: Plot5= -0.5 * (Plot0 + Plot1) ... 在所有样本中

以下是我实现这一目标的尝试,但它没有奏效。第 5 个图的绘制速度似乎是它的两倍,就像它附加了两倍的 x 值一样。它似乎也不喜欢我乘以诸如“-0.5”之类的值。我是 Qt 的新手,我还没有找到一种方法来操作和使用“sampleVector”的 Y 值。 我也不太明白变量的格式,如果能解释一下的话。

提前谢谢你

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)
   }

}

【问题讨论】:

    标签: qt plot qt4 qt5 qvector


    【解决方案1】:

    您正在操纵QPointF,其行为类似于数学点。 所以当你这样做时

    -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()))
    

    【讨论】:

      猜你喜欢
      • 2012-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多