使用 QwtPlotCurve 断开第一个和最后一个点

Posted

技术标签:

【中文标题】使用 QwtPlotCurve 断开第一个和最后一个点【英文标题】:Disconnect first and last point with QwtPlotCurve 【发布时间】:2013-06-17 11:17:44 【问题描述】:

感谢 Qwt 库,我在 Qt 中绘制曲线时遇到问题。

曲线画的很好,除了最后一个点和第一个点是连在一起的,QwtPlot其实是用我提供的数据画了一个多边形……

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

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

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

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

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

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于使用 QwtPlotCurve 断开第一个和最后一个点的主要内容,如果未能解决你的问题,请参考以下文章

动态创建多个 QwtPlotCurve

如何给 QwtPlot 上的 QwtPlotCurve 添加标签?

QwtPlotCurve 未显示在图表上

qwt 绘图曲线轴不可见

qt qwt QwtPlotCurves 的 QList

断开连接后从 xmpp 服务器检索最后发送的消息