0

多亏了 Qwt 库,我在 Qt 中绘制曲线时遇到了问题。

曲线绘制很好,除了最后一个点和第一个点是连接的,QwtPlot实际上用我提供的数据绘制了一个多边形......

我查看了 QwtPlotCurve 设置和参数,但找不到任何可以解决此问题的相关内容。

我感谢这个线程的另一个提示(遗憾的是没有得到答复)是它与我提供的数据有关。

目前,我正在使用一个循环固定大小的缓冲区 (an std::array) 来存储我不断轮询的值。然后,我使用成员函数

setRawSamples(const double* xData, const double* yData, int size);

设置我的曲线数据(使用我得到的指针std::array::data())。这意味着要绘制的点列表没有排序(即具有最小横坐标的点不是 中的第一个点double*)。

会不会是问题的根源?我怎样才能解决这个问题,只画一条曲线而不是一个多边形?

4

1 回答 1

1

默认情况下,曲线绘制为非闭合多边形。每个样本点都连接到提供的数组中的前一个样本点(但第一个样本未连接到最后一个样本)。Qwt 不关心您的点按横坐标值排序。例如,如果您提供样本 (0, 0), (0, 1), (1, 1), (1, 0), (0, 0),它将绘制一个矩形。如果要避免曲线自相交,则需要提供按横坐标排序的样本。

于 2013-06-17T11:30:07.367 回答