由于Qwt库,我在Qt绘制曲线时出现问题。
曲线图很好,除了最后一点和第一点连接的事实,QwtPlot实际上用我提供的数据绘制一个多边形......
我查看了QwtPlotCurve设置和参数,但找不到任何可以解决这个问题的相关内容。
我感谢this thread的另一个提示(遗憾的是没有答案)是它与我提供的数据有关。
目前,我正在使用循环固定大小的缓冲区(std::array
)来存储我连续轮询的值。然后,我使用成员函数
setRawSamples(const double* xData, const double* yData, int size);
设置曲线的数据(使用std::array::data()
得到的指针)。这意味着要绘制的点列表不是有序的(即具有最小横坐标的点不是double*
中的第一个点)。
它可能是问题的根源吗?我该如何解决这个问题,只绘制曲线而不是多边形?
答案 0 :(得分:1)
默认情况下,曲线绘制为非闭合多边形。每个采样点都连接到提供的数组中的前一个采样点(但第一个采样未连接到最后一个采样)。 Qwt不关心按横坐标值排序你的积分。例如,如果提供样本(0,0),(0,1),(1,1),(1,0),(0,0),它将绘制一个矩形。如果要避免曲线中的自相交,则需要提供按横坐标排序的样本。