1

我对 QCustomPlot 库有疑问。我制作了程序,其中用户输入公式和 x 值,然后程序计算 y 值并将它们显示在漂亮的表格中。

之后程序使用 x 值和计算出的 y 值来绘制二次函数。但不是画曲线,而是画出锐利的线条。像统计图或类似的想法。

我想知道如何隐藏这些,例如

x- -1, -2, 1, 2, 0

y - -0.5, -0.25, 0.5, 0.25, 0

为二次函数。

如果您需要这里是我绘制图形的代码。

kiek = 0;

    //limitas is just counter which counted how many times user typed values

   // user typed x values and calculated values are stored in double type array



   QVector<double> x(limitas), y(limitas);


    for(int z= 0; z<limitas; z++){

        x[z] = iksai[kiek];
        y[z] = d[kiek];
kiek++;

    }
ui->customPlot->addGraph();
ui->customPlot->graph(0)->setData(x, y);

max = *std::max_element(d, d + limitas);

max1 = *std::max_element(iksai, iksai + limitas);

min1 = *std::min_element(d, d + limitas);

min = *std::min_element(iksai, iksai + limitas);

ui->customPlot->xAxis->setRange(min, max1);
ui->customPlot->yAxis->setRange(min1, max);

ui->customPlot->replot();
4

1 回答 1

3

这实际上不是 QCustomPlot 相关的问题。

您必须用一些样条线填充点之间的空间。这是一篇很好的文章,展示了样条线是什么:http ://cairnarvon.rotahall.org/2009/07/05/quadratic-spline-interpolation/

所以基本上你需要两个QCPGraph

第一个图表应该包含您的关键点,没有任何连接线 ( QCPGraph::LineStyle::lsNone)。

第二个图应该保存计算的(通过您的代码!)具有一定分辨率的样条点(例如,minX、minX+dx、minX+dx*2 .. maxX 的样条点)并且没有散点。

所以你会用性感的曲线把你的点联系起来。

于 2013-11-10T17:31:39.927 回答