Мышь оставляет след

Мышь оставляет след

Чтобы изменить размер — нажмите левую кнопку мыши и двигайте вправо, чтобы увеличить длину хвоста и влево.

from tkinter import *
from random import randrange as rnd
import time
root = Tk()
root.geometry('800x600')
canv = Canvas(root,bg='lightblue')
canv.pack(fill = BOTH, expand = 1)
 
colors = ['lightyellow', 'lightgray', 'gray', 'pink', 'violet', 'brown', 'red', 'orange', 'yellow', 'green', 'cyan', 'blue', 'magenta', 'black', 'gray', 'lightgreen']
tail = []
tail_size = 30
dr = 2


def clear(event):
    canv.delete(ALL)
 
def resize_start(event):
        global start_x
        start_x = event.x

def resize_end(event):
        global tail_size
        tail_size += (event.x - start_x) // 10
        tail_size = max(tail_size,1)
        print (tail_size)
        


def paint(event):
    global tail
    x = event.x
    y = event.y
    tail += [(x,y)]
    tail = tail[-tail_size:]
    dr = 50 / tail_size
    r = 2
    clear(0)
    for t in tail:
        x = t[0]
        y = t[1]
        r += dr
        canv.create_oval(x-r//2,y-r//2,x+r//2,y+r//2,fill = 'yellow', width=0)
 
canv.bind('<Motion>',paint)
canv.bind('<Button-1>',resize_start)
canv.bind('<ButtonRelease>',resize_end)
mainloop()

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *