将缩放实现到cairo-drawn canvas的最高效方法是什么?

any*_*ny1 5 python wxpython cairo

我有一个wx.ScrolledWindow使用的地方cairo.我已经实现了缩放功能,现在可以重绘整个内容.但是由于最多可绘制200条曲线,因此我应考虑采用更高效的解决方案.

我想到了这些:

  • 缓冲图像的缩放因子-1/+ 1(内存消耗)
  • 使用librsvg并缓冲一个SVG图像(我已经读过一些关于此的内容.librsvg也可以在Windows下运行吗?)
  • 在绘制曲线组之后存储cairo.Context,并在缩放时恢复它(只是一个想法......可能吗?)

还有其他可能性,并且:最佳解决方案是什么?

非常感谢

Chr*_*oph 1

并不是对你的问题的具体答案,但我遇到了同样的问题,只是切换到matplotlib,其中已经实现了缩放和平移功能。我不确定它是否具有超级性能。我感觉我的程序之前运行得更流畅。我还尝试了floatcanvas和 floatcanvas2 但对它们都不是很满意。

  • 刚刚发现:matplotlib 实际上使用 cairo (2认同)