УРОК 6
Навчальний проект
Зображення основних графічних об’єктів у Python
Малювання у Python – це, мабуть, найцікавіша частина у всьому курсі програмування. Отже, і ми попрактикуємося над створенням графічних примітивів, які є складовою частиною векторної графіки.
ЗАВДАННЯ
Перегляньте презентацію та опрацюйте конспект. Зверніть увагу, що у конспекті є приклади розв'язаних задач.
Спробуйте побудувати самостійно довільний малюнок із основних графічних примітивів.
АБО
Надрукувати завдання 2, 3, 4 із конспекту і спробувати змінити значення величин (змінна розміру фігур, змінна кольору , колір полотна, товщина ліній і тому подібне)
Отриманий результат відправляємо на електронну скриньку yulyav87@gmail.com або на номер телефону 0988307760
Для роботи з Tkinter Python можна використати дане онлайн-середовище https://repl.it/languages/tkinter
Полотно для малювання – частина вікна (або все вікно) у якій може бути здійснене малювання об’єктів.
Для створення полотна існує функція Canvas() і застосовується вона таким чином:
назва_полотна= Canvas(назва_вікна, атрибут 1,…)
для полотна можна застосувати наступні атрибути:
width=число_у_пікселях – ширина полотна;
height= число_у_пікселях – висота полотна;
bg= «колір» - колір фону
Також нам потрібно обов’язково розмістити наше полотно у вікні за допомогою методу place().
Графічні примітиви
До графічних примітивів у Python відносяться лінія, прямокутник, еліпс та многокутник.
Завдання 1:
Для їх побудови створимо вікно розмірами 500х500 та полотно світло-блакитного кольору з такими ж розмірами.
При побудові кожного об’єкту ми повинні перед собою малювати уявні координатні промені. Від верхнього лівого краю буде починатися відлік по координатним променям х та у. Значення х та у вимірюється у пікселях.
from tkinter import*
Window=Tk()
Window.geometry("500x500")
canv=Canvas(Window, width=500, height=500, bg="light blue")
canv.place(x=0, y=0)
Window.mainloop()
Осі координат розміщені не так, як ви звикли їх бачити.
Отже, існують наступні 4 функції для зображення основних графічних примітивів:
create_line() – для побудови лінії;
create_rectangle() - для побудови прямокутника;
create_oval() - для побудови еліпса;
create__polygon() - для побудови довільного многокутника;
Лінія
Функція create_line() застосовується наступним чином:
х1 та у1 – координати початкової точки;
х2 та у2 – координати кінцевої точки.
Координати точок записуються у квадратних дужках через кому.
Координати початку та кінця лінії повинні знаходитися у межах полотна, щоб вона відображалася.
Лінії притаманні такі атрибути:
· fill= «колір» - колір лінії;
· width=число_у_пікселях – товщина лінії;
Завдання 2:
До прикладу побудуємо лінію зеленого кольору у нашому полотні із товщиною 3 пікселя, початок буде в точці [100,100], а кінець в точці [200,200]:
from tkinter import*
window=Tk()
window.geometry(“500x500”)
canv=Canvas(window, width=500, height=500, bg= “light blue”)
canv.create_line([100,100],[200,200], width=3, fill= “green”)
window.mainloop()
Прямокутник
Побудова прямокутника, як і лінії буде відбуватися лише за двома точками, а саме за координатами точки верхнього лівого кута та точки нижнього правого кута за допомогою функції create_rectangle():
назва_полотна. create_rectangle([x1,y1],[x2,y2], аргумент1…)
х1 та у1 – координати точки верхнього лівого кута;
х2 та у2 – координати точки правого нижнього кута.
Прямокутник має такі атрибути:
· fill= «колір» - колір фону об’єкта;
· outline= «колір» - колір контуру;
· width=число_у_пікселях – товщина контуру;
Отже, добудуємо до нашого малюнка прямокутник, а саме квадрат із координатами [200,200], [400,400] зеленого кольору із товщиною контуру 3 пікселі:
Завдання 3:
from tkinter import*
window=Tk()
window.geometry(“500x500”)
canv=Canvas(window, width=500, height=500, bg= “light blue”)
canv.place(x=0, y=0)
canv.create_rectangle([200,200], [400,400], width=3, fill= “green”))
window.mainloop()
Еліпс
З еліпсом складніше, адже при створенні еліпсу потрібно вказувати координати уявного прямокутника описаного навколо нього:
назва_полотна. create_oval([х1,у1], [х2,у2], аргумент1….)
х1 та у1 – координати точки верхнього лівого кута уявного прямокутника;
х2 та у2 – координати точки правого нижнього кута уявного прямокутника.
Для еліпса притаманні такі ж атрибути, як і до прямокутника: колір фону, товщина та колір контуру.
Завдання 4: Побудуємо еліпс із такими ж координатами як і квадрат. Встановимо жовтий колір фону та приберемо контур:
from tkinter import*
window=Tk()
window.geometry(“500x500”)
canv=Canvas(window, width=500, height=500, bg= “light blue”)
canv.place(x=0, y=0)
canv.create_oval([200,200], [400,400], width=0, fill= “yellow”))
window.mainloop()
Довільний многокутник
Можна будувати довільну фігуру, яка складається із 3-х та більше вершин:
Назва_полотна.create_polygon([x1,y1]… [xn,yn], аргумент1…)
х1 та y1– координати першої вершини многокутника;
x2 та у2 – координати другої вершини многокутника;
…
xn та уn – координати n-ї вершини многокутника;
Для довільного многокутника притаманні такі атрибути:
· fill= «колір» - колір фону об’єкта;
· outline= «колір» - колір контуру;
· width=число_у_пікселях – товщина контуру;
· smooth=True/False – згладжування контурів.
Завдання 5:
Побудуємо трикутник по контуру вже сформованої фігури:
from tkinter import*
window=Tk()
window.geometry(“500x500”)
canv=Canvas(window, width=500, height=500, bg= “light blue”)
canv.place(x=0, y=0)
canv.create_line([100,100],[200,200], width=3, fill= “green”)
canv.create_rectangle([200,200], [400,400], width=3, fill= “green”))
canv.create_oval([200,200], [400,400], width=0, fill= “yellow”))
canv.create_polygon([100,90], [200,190], [400,190], smooth=False)
window.mainloop()
! Цікавою можливістю є обирання кольору із палітри:
c=colorchooser.askcolor()
canvas.create_rectangle(10, 10, 350, 50, fill=c[1])