海龟的x,y坐标和鼠标指针的x,y坐标一样.py

海龟的x,y坐标和鼠标指针的x,y坐标一样.py

"""
   海龟的x,y坐标和鼠标指针的x,y坐标一样.py
"""
import turtle                          # 导入海龟模块

screen = turtle.Screen()               # 新建屏幕对象
root = screen._root                    # 获取根窗口对象
cv = screen._canvas                    # 获取画布对象

t = turtle.Turtle('circle')            # 新建海龟对象
t.speed(0)                             # 设定海龟速度为最大
t.shapesize(4)                         # 把海龟变大些
t.color('blue')                        # 设为蓝色的

while True: 
    x = root.winfo_pointerx()          # 鼠标指针相对于计算机屏幕的x坐标
    y = root.winfo_pointery()          # 鼠标指针相对于计算机屏幕的y坐标

    rx = cv.winfo_rootx()              # 画布到计算机屏幕最左边距离
    ry = cv.winfo_rooty()              # 画布到计算机屏幕最上边距离 
    x = x - rx - 2                     # 画布边框宽度是2,所以要减去2
    y = y - ry - 2
    
    x = x - screen.window_width() //2  # 转换成在海龟画图坐标系中x坐标
    y = screen.window_height() //2 - y # 转换成在海龟画图坐标系中y坐标

    t.goto(x,y)                        # 到达x,y坐标

    screen.title(str(x) + "," + str(y) )# 在标题栏里显示x,y坐标
    screen.update()                     # 刷新屏幕显示

李兴球

李兴球的博客是Python创意编程原创博客