Малювання із затримкою

Раніше у наших проектах спочатку відбувалась побудова фігур на віртуальному полотні, а тоді команда canvas.pack() виводила це полотно на екран. Для того, щоб бачити процес побудови, потрібно спочатку показати полотно, а тоді виконувати побудову, бажано із деякою затримкою.

Команди canvas.after(100) (затримати на 100 мілісекунд) та canvas.update() (оновити полотно) дозволяють затримати подальше малювання на вказану кількість мілісекунд.

Альтернативно, можна імпортувати модуль time

import time

і скористатись командою

time.sleep(1)


Так, наступний код дозволяє не просто намалювати горизонтальний ряд різнокольорових кіл, а й спостерігати за їх побудовою:

from tkinter import *
import random
tk = Tk()
canvas = Canvas(tk, width=500, height=500)
canvas.pack()
kolory=["black", "red", "green", "blue", "yellow","orange"]
r=20
x=10
y=10
while x<490:
    k=random.choice(kolory)
    canvas.create_oval(x, y, x+r,y+r,fill=k, width=1)
    x+=r
    canvas.after(100)
    canvas.update()


Завдання. Заповнити екран кругами по периметру. 



Завдання 2. Заповнити екран кругами по діагоналі


Завдання 3. Заповнити екран кругами змійкою (рядами по горизонталі)


Завдання 4. Заповнити екран кругами по спіралі

Остання зміна: неділя 12 липня 2020 7:22