weixin_72945625 2023-08-08 11:44 采纳率: 84.2%
浏览 2
已结题

python中的画图坐标问题

img


如图中的代码所示,self.canvas.create_oval(self.x,self.y,event.x,event.y)这一行代码,那个event.x,event.y不是已经将坐标赋值给self.x和self.y了吗?为什么还要再写入括号中?换句话问就是为什么不是self.canvas.create_oval(event.x,event.y)?

  • 写回答

1条回答 默认 最新

  • 大师兄6668 Python领域新星创作者 2023-08-08 11:53
    关注

    以下回答参考了GPT,请查看是否可解决你的问题:
    self.canvas.create_oval()函数中,event.xevent.y是表示鼠标点击位置的坐标。而self.xself.y则可能代表前一个鼠标点击位置的坐标(如果这个类属性在其他地方被赋值过),或者是该类的初始值。

    这行代码的作用是在画布上创建一个椭圆(或圆)形状,其中(self.x, self.y)是椭圆的左上角位置,(event.x, event.y)是椭圆的右下角位置,即矩形框起来的区域。

    如果你直接使用self.canvas.create_oval(event.x, event.y),会将每次鼠标点击事件的坐标传递给create_oval函数,导致每次都只绘制一个点(椭圆的宽度和高度都为0)。这并不是我们想要的结果。

    因此,通过使用self.xself.y来指定椭圆的起始位置,我们可以在鼠标点击的过程中绘制出具有一定大小的椭圆形状。

    总结起来,self.canvas.create_oval(self.x, self.y, event.x, event.y)会在画布上创建一个矩形框起来的椭圆形状,其中(self.x, self.y)是椭圆的左上角位置,(event.x, event.y)是椭圆的右下角位置。这样可以绘制出具有一定大小的椭圆形状。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月8日
  • 已采纳回答 8月8日
  • 创建了问题 8月8日

悬赏问题

  • ¥15 关于redhat虚拟机系统新建卷的问题
  • ¥50 WRFDA读取风云四号A 星的GIIRS数据
  • ¥15 C# 爬虫融通金网址实时银价
  • ¥15 热敏电阻NTC,温控不同颜色的LED的亮与灭,PCB
  • ¥20 ESP32使用MicroPyhon开发,怎么获取485温湿度的值,温湿度计使用的鞋子是Modbus RTU
  • ¥50 苹果MGIE项目部署缺少emb权重
  • ¥15 采用ansys进行机翼在特定路径下的打孔过程中的受力分析
  • ¥15 单片机adb主机连接手机,usb调试密钥无法保存
  • ¥15 已知X和Y有以下关系,求X和Y的关系式
  • ¥15 net core 同时编辑怎么防止数据多保存了