重新缩放或缩放光标后的 qwt plot 移动曲线

qwt plot move curve after rescale or zoom on cursor

我在绘图中有一条经典曲线,我想使用滚轮鼠标事件在光标位置设置缩放。 为此,我想:

不知道有没有其他方法可以继续,有没有什么建议..

谢谢!

所以我找到了一个完美的解决方案,我最终设置了像 google 地图缩放这样的缩放。

解决方案是:

  • 在绘图放大镜中捕捉小部件滚轮事件
  • 在绘图放大镜中创建私有方法rescale_on_cursor(double factor, int x_cursor, int y_cursor, QSize parent_size)

在小部件滚轮事件中,您将调用您的方法。系数将为 0,9 或 1,1(取消缩放或缩放),(x, y) 光标位置和 QSize 父小部件的大小。

主要思想是派生 qwt_plotMagnifier::rescale() 并修改定义新比例的步骤,您将设置一个比例百分比,该比例等于光标位置的百分比。

如果 x_cursor 等于父级大小的 20%,您将设置 AxisScale(20%(zoom), 80%(zoom))。