QWT绘图移动曲线后,重新缩放或缩放光标

qwt plot move curve after rescale or zoom on cursor

本文关键字:缩放 光标 新缩放 移动 绘图 曲线 QWT      更新时间:2023-10-16

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

  • 设置一个缩放:QwtPlotMagnifier::rescale(factor);

  • 将我的绘图中心设置为光标的位置(我在这部分,文档,stackoverflow或其他网站上找到任何内容)

我不知道是否有其他的方法来进行,如果你有任何建议…

谢谢!

所以我找到了一个完美的解决方案,我终于设置了一个缩放像谷歌地图缩放。

解决方案是:

  • 捕获绘图放大镜
  • 中的小部件轮事件
  • 在图放大器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%,你将设置taxisscale(20%(缩放),80%(缩放))。