Черепашкова графіка
В Python обробка зображень відбувається за допомогою вбудованого модуля графіки. Функції для малювання зберігаються в бібліотеці модулів під іменем turtle, в перекладі з англійської - черепашка. Для того, щоб використовувати черепашкову графіку спочатку потрібно імпортувати модуль черепашки командою:
from turtle import*
* вводити обов'язково. from - із, import - імпортувати.
shape('turtle')
Ця команда замість звичайної стрілки курсору покаже нам Черепашку у вікні виконання проекту:
shape перекладається як форма.
На полотні у вікні Python Turtle Graphics Черепашка виконує команди із створення графіки. Ці команди схожі на команди олівця в Scratch.
Команди руху черепашки:
forward(10) або fd(10) - переміститись на 10 кроків (forward - уперед)
right(15) - повернутись праворуч за годинниковою стрілкою на 15 градусів
left(15) - повернутись ліворуч на 15 градусів проти годинникової стрілки
reset() - очистити і переміститись в центр
clearscreen() - очистити вікно
down() - опустити олівець, по замовчуванню він опущений
up() - підняти олівець
color('blue') - встановити колір олівця, таким кольором буде і черепашка.
fillcolor('pink') - встановити колір заливки фігури
begin_fill() - це початок заливки фігури
end_fill() - це кінець заливки фігури
(зразок використання коду з заливкою фігури є в прикладі малювання зірки)
for i in range(10): - повторити 10 разів
Розглянемо приклади побудови трикутника, квадрата, кола:
Приклад коду побудови зірки:
from turtle import* shape('turtle') color('blue') for i in range(5): forward(100) right(144)
Приклад коду побудови шестикутника:
from turtle import* shape('turtle') color('blue') for i in range(6): forward(100) right(60)
Приклад коду побудови дванадцятикутної спіралі з використанням двох циклів. Якщо змінюватимемо кут right(30), отримаємо зовсім інші малюнки.
Приклад коду малювання зірки, заповненої кольором:Змінюючи кут left(170), отримаємо інше зображення.
Приклад коду малювання повороту кола.
from turtle import * speed(0) pensize(5) for x in range(20): if x < 5: color('yellow') elif x < 10: color('blue') elif x < 15: color('pink') else: color('lime') circle(120) left(18)
Система координат в Python
Початок координат - це середина вікна Python Turtle Graphics (координата (0, 0)). Довжини полотна 680, висота 560 кроків.
Координата x змінюється від -340 до 340.
Координата y змінюється від -280 до 280.
Якщо збільшувати вікно, то будуть збільшені кількість кроків Черепашки.
setup(x, y) - задати розміри полотна
Команди переміщення Черепашки по полотні:
goto(x, y) - переміщує в точку з заданими координатами.
home() - переміщує в точку (0, 0), якщо Черепашка зникла з екрану, її можна повернути цією командою.
pos() - переміщує на вихідну позицію (0, 0).
set(x) - змінює координату по x, а y залишається без змін
set(y) - змінює координату по y, а x залишається без змін
xcor() - визначає координату по x
ycor() - визначає координату по y
write('текст') - виводить текст на полотні, в точці розміщення черепашки.
write(text, align, font)
align - розташування тексту left, right, center
font - параметри шрифту.
speed(1) speed(0) - швидкість Черепашки.
Найшвидша - 0, швидко - 10, нормальна - 6, повільна - 3, найповільніша - 1.
onscreenclick(goto) - переміщення Черепашки у вибрану вказівником точку на полотні
circle(r) - малювання кола радіусом r
circle(r, n) -малювання дуги радіусом r і кутом n.
from random import*
Виклик модуля випадкових чисел
x = randint(-340, 340)
y = randint(-280, 280)
goto(x, y)
Отримання випадкових координат та переміщення у ці координати.
Завдання. Складемо проект малювання двох квадратів лініями різної товщини.
Код виконання:
from turtle import* shape('turtle') color('green') width(5) for i in range(4): forward(100) right(90) up() forward(200) right(180) down() color('pink') width(15) for i in range(4): forward(100) right(90) Код виконання за допомогою системи координат:
from turtle import* shape('turtle') color('green') width(5) goto(0,0) goto(0,100) goto(100,100) goto(100,0) goto(0,0) up() color('pink') width(15) goto(100,100) down() goto(100,200) goto(200,200) goto(200,100) goto(100,100)
Користуватись модулем Черепашки можна трохи по іншому:
Імпортувати модуль:
import turtle
Створити змінну для олівця наступним чином:
t = turtle.Pen()
Тоді переміщення потрібно буде записати командою
t.forward()
t.pensize(10) - задає розмір лінії олівця
Приклад:
import turtle t = turtle.Pen() for i in range(4): t.forward(100) t.left(90)
Можна трохи змінити код і отримати малювання квадрату або кола по спіралі:
import turtle t = turtle.Pen() for x in range(100): t.forward(x) t.left(90)
import turtle t = turtle.Pen() for x in range(100): t.circle(x) t.left(90)
Можна ще доповнити цей код кольором:
t.pencolor('pink')
А змінивши ще й кут, ми отримаємо цікавішу фігуру:
А змінимо, щоб малювався квадрат по спіралі:
Зробимо чотирьох колірну спіраль, щоб кожна сторона квадрата була іншого кольору.
Встановити колір фону вікна:
turtle.bgcolor('pink')
Малювання точки певного розміру заданим кольором:
turtle.dot(size=None, 'color')
Якщо розмір не вказано, то використовується максимальний +4.
Приклад: Намалювати мішень різними кольорами.
Створення зображень за допомогою геометричних фігур
Графічні методи модуля tkinter дозволяють виводити на екран зображення з файлів, а також створювати малюнки в програмі з окремих геометричних фігур.
Для цього використовується клас canvas, який має таку структуру:
Змінна = Canvas(вікно, ширина =200, висота = 200)
Приклад створення полотна:
Створимо полотно розміром 400 × 400 пікселів: from tkinter import* # виклик модуля створення вікна root = Tk() # створення вікна canvas = Canvas(root, width = 400, height = 400) # створення полотна canvas.pack()
Положення точок на полотні задається координатами (x, y). Де x - це відстань від лівого краю полотна, y - це відстань від верхнього краю полотна.
canvas.config(bg = 'blue') - задаємо колір фону полотна.
Методи для малювання фігур
Відрізок:
Відрізок create_line - це лінія з двома точками, які мають координатами (x1, y1), (x2, y2).
canvas.create_line(x1, y1, x2, y2)
canvas.create_line(0, 0, 400, 400)
Прямокутник:
Це незаповнений прямокутник create_rectangle, в якого протилежні вершини мають координати (x1, y1), (x2, y2).
canvas.create_rectangle(x1, y1, x2, y2)
canvas.create_rectangle(200, 30, 300, 100)
Еліпс:
canvas.create_oval малює овал, який вписаний в прямокутник з відомими протилежними вершинами (x1, y1), (x2, y2).
canvas.create_oval(x1, y1, x2, y2)
canvas.create_oval(200, 30, 300, 100)
Багатокутник:
canvas.create_polygon малює багатокутник з його вершинами.
canvas.create_polygon(х1, у1, х2, у2, …, xn, yn)
Приклад, трикутник:
points = [10, 210, 100, 210, 100, 310] canvas.create_polygon(points)
Координати вершин задані списком.
або так: canvas.create_polygon(10, 210, 100, 210, 100, 310)
Щоб малюнки були кольорові, потрібно використати кольори контуру та заливки:
fill - колір заливки, outline - колір лінії
Наприклад:
canvas.create_oval(20, 30, 120, 130, fill = 'pink', outline = 'blue', width = 3)
Приклад створення фігур:
Використання циклу з лічильником в черепашковій графіці.
Спробуємо намалювати багатокутники:
Зірки, які мають більше, ніж 6 кутів
можуть мати більше як одну зірчасту форму(вигляд).
Для побудови зірки кути
розраховуються за формулами:
200 × 100 пікселів, колір тла вікна — помаранчевий.
from turtle import*
setup(200, 100)
bgcolor('orange')
Коментарі
Дописати коментар