Графічні можливості модуля turtle



Модуль - це самостійна програма, що розширює функціонал вже існуючих програм.
Функціонал - це перелік можливостей, що здатна виконувати програма.
Наприклад, ви їдете відпочивати за кордон і не володієте мовою, на якій розмовляють там. Ви можете купити розмовник, де розібрані вирази залежно від обставин. З розмовником розширюються ваші можливості у спілкуванні в конкретних ситуаціях, розширився функціонал спілкування.
Для того, щоб мати змогу створювати графічні об'єкти, до програми треба підключити модуль turtle (з англ. «черепашка»). Згадайте, черепаху з казки Олексія Миколайовича Толстого «Золотий ключик або Пригоди Буратіно». ЇЇ звали Тортила. Тепер зрозуміло, чому.
Підключення модуля turtle у Python відбувається наступним чином:
from turtle import *
Ця стрічка розширює графічний функціонал.
Тепер ми можемо створювати різні картинки. Після запуску такого роду програм відкривається окреме вікно (з назвою tk) з вказівником, що має вигляд трикутника. Будемо називати його «черепашкою».


Черепашка дивиться строго направо і готова виконувати команди. Малює вона ніби пером. За настройками напочатку виконання перо в неї опущене і при пересуванні буде залишати слід. Яким же чином черепашку можна пересувати?

Команди переміщення черепашки
forward(60) - проповзти вперед 60 кроків (пікселів).
left(50) - повернутися наліво на 50 градусів.
right(90) - повернутися направо на 90 градусів.
circle(30) - намалювати коло радіуса 30, яке повністю знаходиться зліва від положення  черепашки.
circle(-30) - намалювати коло радіуса 30, яке повністю знаходиться справа від положення черепашки.
Виявляється крім цих команд, черепашка ще орієнтується у вікні як у системі координат. На початку виконання програми вона знаходиться у точці (0, 0) і готова перейти у будь-яку точку з заданими координатами. ЇЇ система координат нічим не відрізняється від звичної для нас:


Команди малювання
down() - опустити перо. Після цієї команди черепашка почне залишати слід при будь-якому своєму пересуванні.
up() - підняти перо. Після цієї команди при пересуванні черепашка не буде залишати слід, поки ми знову не дамо команду down()
width(3) - встановити товщину сліду (пера) черепашки 3 пікселів.
сolor('red') - встановити червоний колір пера (сліду) черепашки. Колір має бути текстовим рядком з назвою кольору англійською мовою, наприклад, ‘red', ‘yellow', ‘green', ‘blue', ‘brown'. Без використання цієї команди черепашка малює чорним пером.
fill() - використовується для малювання зафарбованих областей. Починаючи малювати зафарбовану область, дайте команду fill(1), а закінчивши малювання області - fill(0).
Зверніть увагу! У версіях Python 2.6 та вище перед початком малювання області, що має заливатися, замість fill(1), треба писати команду begin_fill(), а закінчивши малювання області, замість fill(0), треба писати команду end_fill()

Написання програм, що малюють квадрати
 Напишемо програму, що малює квадрат зі стороною 100 пікселів блакитного кольору у першій координатній чверті .

Уявимо собі, що має бути результатом виконання програми.
 

 (Координатні осі і точки ми не малюємо, лише контур квадрата)
Намагайтеся подумки повторювати рухи черепашки, особливо зверніть увагу, як вона повертає. На мал. відмічено кути, на які має повертати черепашка. Всі вони прямі, тобто дорівнюють 90 градусів. Поворот здійснюється завжди вліво.
Напишемо програму. По-перше, треба підключити модуль графічних можливостей:
from  turtle import *
По-друге, треба встановити колір. Чому саме напочатку малювання? Ви спочатку берете олівець блакитного кольору, а потім починаєте ним малювати. Так само і колір сліду черепашки змінюється  тільки після відповідної команди:
color('blue')
Після підключення модуля для малювання сторони можна використати команду forward(100)
Щоб черепашку зорієнтувати у першу чверть, треба повернути її наліво. На скільки градусів? Оскільки кути квадрата прямі, і 180-90=90, то остаточно команда виглядатиме так: left (90)
Після цієї команди черепашка буде дивитися вверх, далі треба їй сказати намалювати другу сторону і повернутися для малювання третьої. Це будуть команди:
forward(100)
left (90)
Аналогічно домальовуємо третю і четверту сторони квадрата:
forward(100)
left (90)
forward(100)
left (90)
Остання команда повороту необхідна для зорієнтування черепашки у початковий напрямок, тобто строго направо. Це просто необхідно, адже при малюванні складних малюнків важливо знати, куди дивиться черепашка.
Маємо програму:
from turtle import *
color('blue')
forward(100)
left(90)
forward(100)
left(90)
forward(100)
left(90)
forward(100)
left(90)
Запам'ятавши її під ім'ям, наприклад kvadrat.py, і запустивши на виконання натиском F5, ми побачимо, як черепашка просувається по екрану. В кінці виконання матимемо:




  Як змінити програму, щоб точка з координатами (0, 0) була не лівою нижньою точкою квадрата, а його центром?


Треба перенести точку початкового малювання у точку А. Якщо сторона квадрата дорівнює 100 пікселів, то координати точки А (-50, -50). Але переносячи черепашку у точку з такими координатами, варто пам'ятати, що при перенесенні черепашка не повинна залишати слід. Цього можна досягнути такою послідовністю команд:
up()
goto(-50,-50)
down()
А далі так само малюємо квадрат. Остаточно програма kvadrat2.py матиме вигляд:
from turtle import *
up()
goto(-50,-50)
down()
color('blue')
forward(100)
left(90)
forward(100)
left(90)
forward(100)
left(90)
forward(100)
left(90)

 Квадрат можна намалювати і використовуючи команду goto.
Для цього треба знати координати вершин і обходити їх послідовно за годинниковою стрілкою чи проти, але лише в одному напрямку.
Подамо код готової програми:
from turtle import *
color('blue')
goto(100,0)
goto(100,100)
goto(0,100)
goto(0,0)
Результат виконання програми буде такий самий як на мал.
Для того, щоб намалювати квадрат з центром у точці (0, 0), треба знову ж таки знати координати вершин А, В, С, D.



Починати малювати  при цьому можна з будь-якої точки. Подамо програму, що малює квадрат за годинниковою стрілкою, починаючи з точки D:
from turtle import *

color('blue')

up()
goto(-50, 50)
down()
goto(50,50)
goto(50,-50)
goto(-50,-50)
goto(-50,50)
Виділена частина програми є ніби підготовкою перед малюванням.
Написання програм, що малюють трикутники
 Напишемо програму, що малює рівносторонній трикутник зі стороною 60 пікселів товщиною лінії 3 зеленого кольору.
Уявимо, який результат має видавати ще ненаписана програма:
 Точкою А на малюнку відмітимо початкову точку малювання. Дугами показано, на які кути має повертати черепашка. Визначимо їх градусну міру:
Оскільки трикутник рівносторонній, то всі його внутрішні кути дорівнюють 180/3=60 градусів. Кут повороту черепашки є суміжним до внутрішнього кута, а тому його градусна міра дорівнює: 180-60=120 градусів.
Пригадаємо, яким чином змінити колір і товщину сліду, що залишає черепашка. Це будуть команди:
color(‘green')
width(3)
Остаточно програма малювання заданого трикутника матиме вигляд:
from turtle import *
color('green')
width(3)
forward(60)
left(120)
forward(60)
left(120)
forward(60)
left(120)
Результат виконання програми буде наступним:

  Програми, що малюють КОЛО
Напишемо програму, яка малює жовте коло радіуса 40 з центром у точці (0,0)  і товщиною лінії 4.
Уявимо, який має бути результат виконання цієї програми:

 Здавалося б, що може бути простіше:
  • 1. підключив модуль turtle from turtle import *
  • 2. встановив колір сліду color('yellow')
  • 3. встановив товщину сліду width(4)
  • 4. намалював коло circle(40)
Але є одна особливість малювання кола: circle(40) малює коло радіуса 40, яке повністю знаходиться зліва від положення  черепашки. Оскільки черепашка напочатку дивиться строго вправо, то точка початку малювання (в даному випадку точка (0,0)) буде найнижчою точкою кола. Коло буде лише дотикатися осі Ох.
Якби черепашка дивилася б наліво, то командою circle(40)  малювалося б коло, а точка початку малювання була б найвищою точкою. Якби черепашка дивилася б строго вверх, то точка початку малювання була б найправішою точкою кола. Якби черепашка дивилася б строго вниз, то точка початку малювання була б найлівішою точкою кола. Робимо висновок: залежно від того, коди дивиться черепашка, отримуємо різні положення кола.
Напочатку програми черепашка дивиться вправо. Тому початок малювання має бути найнижчою точкою кола. Це точка А. Знайдемо її координати: оскільки радіус кола за умовою дорівнює 40 пікселів, то ОА=40, то координати точки А(0, -40).
Підготовка до малювання кола буде такою:
1. підняти перо, щоб при пересуванні у точку А, черепашка не залишала сліду → up()
2. пересунути черепашку у точку А  → goto(0,-40)
3. опустити перо, щоб черепашка почала залишати слід при пересуванні → down()
4. лише після цього малювати коло.
Остаточно програма виглядатиме так:
from turtle import *
up()
goto(0,-40)
down()
color('yellow')
width(4)
circle(40)
Зверніть увагу, що спочатку ми переносимо черепашку, а потім малюємо з нової позиції коло, а не навпаки.
Результат виконання програми тепер є правильним:

Комментариев нет:

Отправить комментарий