我正在开发一个GUI,用于绘制用户选择的两点之间的一条线。它有一个连接所有点的所有线的背景图(它与wx.EVT_PAINT绑定,因此在调整大小时不会消失)
然而,当我调整框架大小时,我无法找到缩放这些绘图的方法。情节始终保持相同的大小。
当我调整框架大小时,任何人都知道如何按比例放大或缩小绘图? sizer在这里工作吗?谢谢你的帮助!
答案 0 :(得分:0)
答案取决于您用于积分的坐标。如果您希望绘图始终适合您的窗口,最简单的方法是使用坐标空间[0, 1]x[0, 1]
并使用wxDC::SetLogicalScale() GetClientSize().x
和.y
作为参数。
请注意,您还需要在wxEVT_SIZE
处理程序中使窗口无效。
答案 1 :(得分:0)
感谢VZ的答案,这看起来比我的解决方案更好。
我首先通过将它们除以所有点中的最大x和y来标准化这些点的坐标。
然后在'print'函数中,我使用GetSize()函数并乘以标准化坐标。