Увеличение (масштабирование) фигуры в tkinter

МаксМалой

Новичок
Пользователь
Янв 15, 2021
1
0
1
Доброго времени суток!
Не могу осилить задачу, надо сделать масштабирование квадрата с последующим перемещением. Перемещение я сделал, а вот с изменением размеров никак не могу справится...
Вот мой код:

from tkinter import *
import random

def funkcia():
c.move(kvadrat, 1, 0)
if c.coords(kvadrat)[2] < 550:
root.after(3, funkcia)

root = Tk()
root.title('Квадрат')
c = Canvas(width=1000, height=500, bg='lightblue')
c.pack()
color = ("red", "green", "yellow", "orange", "purple", "aqua", "blue", "chartreuse", "blueviolet", "darkred",
"lightslategray", "olive", "crimson")[random.randint(0,12)]

kvadrat = c.create_rectangle([5, 200], [105, 300], fill=color)
funkcia()

root.mainloop()
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Код вставляйте с помощью ... -> код -> python.
Перемещение я сделал, а вот с изменением размеров никак не могу справится...
Вот пример:
Python:
from tkinter import *
import random


def funkcia():
    c.move(kvadrat, 1, 0)
    if c.coords(kvadrat)[2] < 550:
        c.coords(kvadrat, c.coords(kvadrat)[0] - 0.1,
                          c.coords(kvadrat)[1] - 0.1,
                          c.coords(kvadrat)[2] + 0.1,
                          c.coords(kvadrat)[3] + 0.1)
        root.after(3, funkcia)


root = Tk()
root.title('Квадрат')
c = Canvas(width=1000, height=500, bg='lightblue')
c.pack()
color = ("red", "green", "yellow", "orange", "purple", "aqua", "blue",  "chartreuse", "blueviolet", "darkred",
"lightslategray", "olive", "crimson")[random.randint(0, 12)]

kvadrat = c.create_rectangle([5, 200], [105, 300], fill=color)
funkcia()

root.mainloop()
 

Форум IT Специалистов