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

为何鼠标在Canvas外时仍生成左上角圆形且输出-1 -1?

问题原因解析

当鼠标处于Canvas区域外时,canvas.get_mouse_x() 和 canvas.get_mouse_y() 会返回**-1**作为默认值——这是多数图形库的通用设计逻辑:当检测不到鼠标在目标画布范围内时,就用一个特殊值(通常是-1)来表示“鼠标不在有效区域”。

看你这段代码:

mouse_x = canvas.get_mouse_x()
mouse_y = canvas.get_mouse_y()    
canvas.create_oval(mouse_x, mouse_y, mouse_x + SIZE, mouse_y + SIZE)     
print(mouse_x, mouse_y)

当mouse_x和mouse_y都是-1时,椭圆的坐标会变成(-1, -1, -1+SIZE, -1+SIZE)。Canvas的坐标原点在左上角(0,0),传入负数坐标时,画布会自动裁剪超出可视区域的部分,但如果SIZE是正数,椭圆的右上部分会落在画布内,最终就会在左上角显示出一个圆形。终端打印的-1 -1就是这两个API返回的默认无效值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 19:37:00