§ 30. Використання циклів
для побудови зображень
Повторення команд малювання з використанням циклу for допоможе вам створювати цікаві малюнки.
Завдання 1
Як намалювати багатокутник
Програмуючи малювання три-, чотири- і п’ятикутника (див. вправу 27) ви могли помітити, що в кожному випадку Черепашка, після малювання сторони, поверталася на кут 360/n градусів, де n — число кутів. Це дозволяє скласти одну програму для малювання будь-якого багатокутника.
Приклад 1
Складемо програму для малювання n-кутників.
from turtle import*
n = int(input('Скільки кутів? '))
x = int(input('Довжина сторони? '))
for і in range(n):
forward(x)
left(360/n)
Завдання 2
Черепашка малює візерунки
Зміна кольорів у циклі
З’ясуємо, як зробити спіралі різнокольоровими. Для цього нам знадобиться список кольорів, а не один колір.
Створимо змінну colors, в яку помістимо список із назв чотирьох кольорів:
colors = ['red', 'yellow', 'green', 'blue']
Зверніть увагу! Звернутися до значення зі списку з номером n можна як до colors[n].
Наприклад, colors[0] = 'red', colors[3] = 'blue'.
Але як змусити Черепашку під час кожної ітерації, коли х змінюється від 1 до 99, обирати одне з 4 значень списку? Використаємо як номер кольору в списку colors остачу від ділення x на 4 — x%4: адже вона може дорівнювати тільки 0, 1, 2, 3, що відповідає номерам кольорів у списку. Повернемося до програми малювання квадратної спіралі, але крок циклу зробимо таким, що дорівнює 1:
colors = ['red', 'yellow', 'green', 'blue']
for x in range(100):
color(colors[x%4])
forward(x)
left(90)
Таким чином, вносячи незначні зміни до операторів у тілі циклу for, ви можете створювати яскраві зображення.
Приклад 2
Збільшимо кут повороту на 2°
і змінимо товщину лінії залежно від змінної циклу.
color(colors[x%4])
forward(x)
left(360/4+2)
width(x*4/100)
Завдання 3
Питання для самоперевірки
1. Поясніть алгоритм зміни кольору лінії при кожній ітерації циклу.
2. Яку відстань пройде Черепашка при виконання циклу:
а) for х in range(5): б) for х in range(2, 10, 2):
forward(x) forward(10)
3. Визначте градусну міру кута, на який повернеться Черепашка в ході виконання циклу:
а) for х in range(4): б) for х in range(5, 9):
left(20) left(10)
4. Створіть список clrs, елементами якого будуть назви червоного, жовтого,
зеленого кольорів.
5. Обговоріть алгоритм встановлення Черепашки у точку з випадковими
координатами.
6. Як намалювати орнамент, поданий у формі зубчастої лінії?
Вправа 30
Створити програму «Зоряне небо».
Завдання: заповнити область вікна зображеннями зірок із випадковими координатами.
1. Проаналізуйте алгоритм, поданий у словесній формі.
2. Відкрийте вікно IDLE і створіть нове вікно програми.
Збережіть файл з іменем Вправа 30.
3. Запишіть програмний код.
4. Додайте до списку colors ще 4 назви кольорів.
Змініть програмний код так, щоб були намальовані 100 кіл, малювання яких починається з точок із випадковими координатами в діапазоні від –200 до 200 по обох осях, а радіуси є випадковими числами в діапазоні від 5 до 50.
5. Додайте до програми команди, потрібні для того, щоб кола були зафарбовані.
6. Перевірте роботу програми. Закінчіть роботу, закривши вікно IDLE.