Урок 38
Полотно для малювання. Клас Canvas
Мета:
Тип уроку: вивчення нового матеріалу.
Програмне забезпечення: середовище програмування Python, браузер.
Хід уроку
І. Організаційний етап
ІІ. Актуалізація опорних знань
Фронтальне обговорення понять, вивчених на попередньому уроці.
IІІ. Вивчення нового матеріалу
Пояснення вчителя
Цей клас застосовується для відображення діаграм, многокутників та інших типів графічних елементів. Ми будемо використовувати клас Canvas для створення полотна для малювання.
Для того, щоб зробити полотно для малювання, необхідно дві команди: одна створює полотно, друга його розміщує:
назва_полотна=Canvas (до якого вікна відноситься, bg="колір полотна")
назва_полотна.раск()
Спочатку створюємо головне вікно, у якому і розміщуємо полотно для малювання:
from Tkinter import *
root=Tk()
root.title('Windows for drawing')
canvas=Canvas(root)
canvas.pack()
root.mainloop()
На цьому полотні є система координат, але на відміну від вікна turtle, початок координат знаходиться завжди у лівому верхньому куті, додатна частина осі х спрямована звичайним чином вправо, а от додатна частина вісі y спрямована донизу (!). Тобто у вікні видно лише першу координатну чверть - частина фігури, що не потрапляє у цю чверть просто не відображається.
Для розміщення на полотні прямокутника і овалу застосуємо методи create_rectangle та create_oval.
canvas.create_rectangle(10, 10, 100, 200)
назва_полотна.create_rectangle(x1, y1, х2, у2, fill="колір прямок.", outline="колір лінії", width=товщина лінії),
де xl, yl, x2, y2 - координати двох крайніх точок прямокутника.
Якщо ці ж самі координати точок застосувати у методі create_oval, то отримаємо таке вікно:
canvas.create_oval(10, 10, 100, 200)
назва_полотна.create_oval (x1, y1, x2, y2, fill="колір овалу", outline="колір лінії", width="товщина лінії")
де х1, у1, х2, у2 - крайні точки цього прямокутника.
Також можна побудувати багатокутник. Кількість кутів у багатокутнику залежить від того, скільки координат точок кутів ми введемо.
Для побудови багатокутника використовуються команда
назва_полотна.create_polygon(xl, yl, x2, y2, …, хn, уn, fill="колір багатокутника", outline="колір лінії", width="товщина лінії"),
де x1, у1, х2, у2, …, хn, уn - координат точок кутів
У методах create_rectangle та create_oval є однакові параметри:
fill відповідає за заливку фігури,
outline та width задають колір та ширину межі фігури.
ІV. Усвідомлення набутих знань
Написати програму, яка малює червоний прямокутник з блакитною межею шириною 50 пікселів та жовтий овал із зеленою межею шириною
10 пікселів:
from Tkinter import *
root = Tk()
root.title('Window for drawing')
canvas = Canvas(root, bg='steelblue')
canvas.pack()
canvas.create_rectangle(10, 10, 100, 200, fill='red', outline='blue',width=10)
canvas.create_oval(150, 150, 160, 160, fill='yellow', outline='green',width=2)
root.mainloop()
Написати програму, яка будує вікно з назвою "Фігури", на якому зображено полотно для малювання зеленого кольору. На полотні зобразити світло-фіолетовий овал із темно-фіолетовою межею, жовтий прямокутник із оранжевим ободком та блакитний п’ятикутник із синьою межею.
from Tkinter import *
win = Tk()
win.title ('Фігури')
paint = Canvas (win, bg='green')
paint.pack()
paint.create_oval (30, 40, 150, 100, fill='violet', outline='purple', width=4)
paint.create_rectangle (220,40,350,100, fill='yellow', outline='orange', width=6)
paint.create_polygon (30, 170, 100, 150, 160, 170, 160, 210, 70, 240, fill='blue', outline='black', width=3)
win.mainloop()
V. Відпрацювання практичних навичок
Робота за компˈютером. Виконання практичного завдання.
VІ. Підсумок уроку.
VІІ. Оцінювання знань учнів.
VІІІ. Домашнє завдання
Написати програму, яка на жовтому фоні малює синій шестикутник з червоною межею довільного розміру.