You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Zelle的graphics.py中图形对象move方法参考点及窗口适配问题

Zelle graphics.py 中move方法及显示问题解答

关于move方法的偏移逻辑

move(x, y)方法的作用是给图形所有顶点的坐标加上相对偏移量,并非将图形移动到某个绝对坐标点。

拿你给出的矩形示例来说:

Rectangle(Point(4,5), Point(10,15))

这个矩形的左上角是(4,5)、右下角是(10,15)。调用move(20,25)后,每个顶点的x坐标都会加20,y坐标都会加25:

  • 左上角变为 (4+20, 5+25) = (24, 30)
  • 右下角变为 (10+20, 15+25) = (30, 40)

所以既不是从(20,25)位置开始绘制,也不是以(20,25)为中心,而是整个图形在x轴方向向右偏移20单位,y轴方向向下偏移25单位(graphics.py中y轴向下为正方向)。

移动后图形无法完全显示的解决办法

出现这个问题是因为移动后的图形超出了当前窗口的可见范围——graphics.py默认窗口的坐标范围是(0,0)到(200,200),窗口大小为200x200像素。你可以通过以下方式解决:

  • 扩大窗口尺寸:创建窗口时指定更大的宽高,比如:
    win = GraphWin("My Window", 600, 500)  # 宽600像素,高500像素
    
  • 重新定义坐标系统:用setCoords()调整窗口的坐标范围,让它能容纳移动后的图形。比如针对上面移动后的矩形,可以设置:
    win.setCoords(20, 25, 35, 45)  # 窗口左下角对应(20,25),右上角对应(35,45)
    
  • 计算合适的偏移量:提前估算图形移动后的位置,确保所有顶点都落在窗口默认的坐标范围内(0到窗口宽/高数值之间)。

内容的提问来源于stack exchange,提问作者Magna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 13:34:59