Малювання у Python – це, мабуть, найцікавіша частина у всьому курсі програмування. Отже, і ми попрактикуємося над створенням графічних примітивів, які є складовою частиною векторної графіки.
15.1 Полотно
Але почнемо ми із розміщення полотна. Полотно для малювання — частина вікна (або все вікно) у якій може бути здійснене малювання об’єктів.
Для створення полотна існує функція Canvas() i застосовується вона таким чином:
назва полотна- Canvas(назва вікна, атрибуті …)
До полотна можна застосувати наступні атрибути:
- width=число_у_пікселях — ширина полотна;
- height=число_у_пікселях — висота полотна;
- bg=“колір“ — колір фону.
Зверніть увагу! Також нам потрібно обов’язково розмістити наше полотно у вікні за допомогою методу рlасе(). Як його застосовувати ми вже знаємо.
15.2 Графічні примітиви
До графічних примітивів у Python відносяться лінія, прямокутник, еліпс та многокутник.
Для їх побудови створимо вікно розмірами 500х500 та полотно світло-блакитного кольору з такими ж розмірами:

При побудові кожного об’єкту ми повинні перед собою малювати уявні координатні промені. Від верхнього лівого краю буде починатися відлік по координатним променям х та у (мал. 31). Значення х та у вимірюються в пікселях. Зверніть увагу! Осі координат розміщені не так, як ви звикли їх бачити. Про це не можна забувати.
Отже, існують наступні 4 функції для зображення шо основних графічних примітивів:
- create_line() – для побудови лінії;
- create_rectangle() – для побудови прямокутника;
- create_oval() – для побудови еліпса;
- create_polygon() – для побудови довільного многокутника.
Тепер про кожну із функцій окремо.
15.2.1 Лінія
Функція create_line() застосовується наступним чином:
назва_полотна.create_line([х1,у1], [x2,y2], аргумент1…)
х1 та y1 – координати початкової точки;
х2 та у2 – координати кінцевої точки.
Як ви вже помітили, то координати точок записуються у квадратних дужках через кому.
Зверніть увагу! Координати початку та кінця лінії повинні знаходитися у межах полотна, щоб вона відображалася.
Також для лінії притаманні такі атрибути:
fill=“колір” – колір лінії;
width=число у пікселях – товщина лінії.
Для прикладу побудуємо лінію зеленого кольору у нашому полотні із товщиною 3 пікселі, початок буде в точці [100, 100], а кінець в точці [200, 200]:
Подивимося, як це буде виглядати при запуску програми (мал. 32)


15.2.2 Прямокутник
Побудова прямокутника, як і лінії буде відбуватися лише за двома точками, а саме за координатами точки верхнього лівого кута та точки нижнього правого кута за допомогою функції create_rectangle():
назва_полотна.create_rectangle([x1,y1], [x2,y2], аргумент1 …)
х1 та y1 – координати точки верхнього лівого кута;
х2 та у2 – координати точки правого нижнього кута.
Для прямокутника має такі атрибути:
- fill=“колір” – колір фону об’єкта;
- outline=“колір” – колір контуру;
- width=число_у_пікселях – товщина контуру.
Отже, добудуємо до нашого малюнка прямокутник, а саме квадрат із координатами [200,200], [400,400] зеленого кольору із товщиною контуру — 3 пікселі (мал. ):


15.2.3 Еліпс
З еліпсом складніше, адже при створенні еліпсу потрібно вказувати координати уявного прямокутника описаного навколо нього:
назва_полотна.create_oval([x1,y1], [x2,y2], аргумент1…)
х1 та y1 – координати точки верхнього лівого кута уявного прямокутника;
х2 та у2 – координати точки правого нижнього кута уявного прямокутника.
Для еліпса притаманні такі ж атрибути, як і до прямокутника: колір фону, товщина та колір контуру.
Щоб зрозуміти принцип побудови еліпса, побудуємо його із такими ж координатами як і квадрат. Встановимо жовтий колір фону та приберемо контур.

Маємо наступне вікно (мал. 34).

Зверніть увагу! Так як квадрат був створений раніше, він розміщений за кругом. За таким принципом розміщуються всі об’єкти.
15.2.4 Довільний многокутника
Тобто окрім чітких фігур можна
будувати довільні фігури, які складаються із 3-х та більше вершин:
назва_полотна.create_polygon([х1,у1],
[x2,y2]… [xn,yn], аргумент1…)
х1 та y1 – координати першої вершини многокутника;
х2 та у2 – координати другої вершини многокутника;
…
хn та уn – координати n-ї вершини многокутника.
Для довільного многокутника притаманні такі атрибути:
fill=“колір” – колір фону об’єкта;
outline=“колір” – колір контуру;
width=число_у_пікселях – товщина контуру
smooth=True/False – згладжування контурів.
Ну і для прикладу добудуємо трикутник по контуру вже сформованої фігури (мал. 35):


Мал. 35
Контрольні питання
1. Що таке полотно та яка його головна функція?
2. Які функції для побудови графічних примітивів ви знаєте?
3. Скільки точок потрібно для побудови: а) лінії, б) прямокутника; в) еліпса; г) довільного многокутника?
Практичні завдання
Створіть новий файл Python та нове вікно і полотно. Побудуйте наступні малюнки засобами мови Python (мал. 36).
