Узори
Побудова узору передбачає використання циклу, в якому буде малюватись елемент цього узору.
Розглянемо простий узор, що складається з вертикальних ліній, розміщених по всій ширині полотна побудови.
Лінія створюється базовою командою canvas.create_line(x1,y1,x2,y2), де x1,y1 вказують на координати початку лінії, а x2,y2 - на координати її кінця. Згідно з умовою, лінія повинна починатись нагорі полотна побудови, де у1=0, і закінчуватись внизу, де у2=500.
Тож, наприклад, перша лінія матиме таку команду побудови:
canvas.create_line(0,0,0,500)
Наступна:
canvas.create_line(10,0,10,500)
Ще наступна:
canvas.create_line(20,0,20,500)
Таким чином, якщо створити цикл, у якому значення х буде змінюватись в діапазоні від 0 до 500 з кроком 10, можна записати таку загальну команду побудови:
for x in range(0,500,10):
canvas.create_line(x,0,x,500, width=2)
Випадковий колір
Для цікавішого вигляду можна використовувати випадкові кольори побудови. Проте якщо просто вибрати випадковий колір, він з певною ймовірністю, буде погано видимим. Тому доцільно створити список кольорів, з якого буде відбуватись відбір випадкового елемента. У список можна внести довільну кількість назв кольорів.
kolory=["black", "red", "green", "blue", "cyan", "yellow", "magenta", "azure", "brown", "coral", "grey", "khaki", "olive", "orange", "lavender", "ivory", "navy", "orchid", "plum"]
Команда нижче дозволяє вибрати один із кольорів списку:
k=random.choice(kolory)
Команда побудови лінії використовує змінну k для призначення кольору малювання:
canvas.create_line(0,0,500,500, fill=k)
В такому разі задача загалом матиме такий код:
import random
from tkinter import *
tk = Tk()
canvas = Canvas(tk, width=500, height=500)
kolory=["black", "red", "green", "blue", "cyan", "yellow", "magenta", "azure", "brown", "coral", "grey", "khaki", "olive", "orange", "lavender", "ivory", "navy", "orchid", "plum"]
for x in range(0,500,10):
k=random.choice(kolory)
canvas.create_line(x,0,x,500, width=2, fill=k)
canvas.pack()
Задача 1. Створити узор із горизонтальних ліній
Задача 2. Створити узор у клітинку
Задача 3. Створити узор на половинках полотна
Задача 4. Створити узор у діагональну клітинку
Задача 5. Створити узор із променів, що розходяться
Задача 6. Створити узори на четвертинках екрану