УРОК 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])