【问题标题】:How to scale a plot using wxpython?如何使用 wxpython 缩放绘图?
【发布时间】:2016-12-13 01:22:01
【问题描述】:

我正在开发一个 GUI,它在用户选择的两点之间绘制一条线。它有一个连接所有点的所有线的背景图(它与 wx.EVT_PAINT 绑定,因此在调整大小时它不会消失)

但是,当我调整框架大小时,我找不到缩放这些图的方法。情节始终保持相同的大小。

有人知道在我调整框架大小时如何按比例放大或缩小绘图吗? sizer在这里工作吗?感谢您的帮助!

This is the original size

This is what it looks like when I shrink it

【问题讨论】:

  • 您是静态定位还是动态定位 wxPoints?

标签: python-2.7 plot wxpython wxwidgets


【解决方案1】:

答案取决于您用于点的坐标。如果您希望绘图始终适合您的窗口,最简单的方法是使用坐标空间 [0, 1]x[0, 1] 并使用 wxDC::SetLogicalScale()GetClientSize().x.y 作为参数。

请注意,您还需要在 wxEVT_SIZE 处理程序中使窗口无效。

【讨论】:

  • 非常感谢!我想通了!
【解决方案2】:

感谢VZ的回答,看起来比我的解决方案好。

我首先将这些点的坐标除以所有点中的最大 x 和 y 来归一化。

然后在“打印”函数中,我使用了 GetSize() 函数并乘以归一化坐标。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-23
    • 2016-10-13
    • 2011-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多