重新缩放或缩放光标后的 qwt plot 移动曲线
qwt plot move curve after rescale or zoom on cursor
我在绘图中有一条经典曲线,我想使用滚轮鼠标事件在光标位置设置缩放。
为此,我想:
设置重新缩放:QwtPlotMagnifier::rescale(因子); (这已经完成并且有效)
将绘图的中心设置为光标的位置(我在这部分、文档、Whosebug 或其他网站上找到任何内容)
不知道有没有其他方法可以继续,有没有什么建议..
谢谢!
所以我找到了一个完美的解决方案,我最终设置了像 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))。
我在绘图中有一条经典曲线,我想使用滚轮鼠标事件在光标位置设置缩放。 为此,我想:
设置重新缩放:QwtPlotMagnifier::rescale(因子); (这已经完成并且有效)
将绘图的中心设置为光标的位置(我在这部分、文档、Whosebug 或其他网站上找到任何内容)
不知道有没有其他方法可以继续,有没有什么建议..
谢谢!
所以我找到了一个完美的解决方案,我最终设置了像 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))。