Урок 7. Узоры и орнаменты
На этом уроке мы научимся создавать красивые узоры из повторяющихся фигур. Будем использовать циклы, повороты, цвет и толщину линии.
Главная идея урока
Орнамент получается тогда, когда один и тот же элемент повторяется несколько раз. В программировании это удобно делать с помощью цикла.
Например, можно нарисовать квадрат, немного повернуть Черепашку, снова нарисовать квадрат, снова повернуть — и получить красивый круговой узор.
Что сегодня повторяем?
for i in range(12): — повторить команды 12 раз.t.left(30) — повернуть Черепашку налево на 30 градусов.t.color("blue"), t.pensize(4), t.speed(0).Важно понять
Чтобы узор получился круговым, нужно думать о полном обороте. Полный оборот — это 360 градусов.
Если мы хотим повторить элемент 12 раз, то после каждого элемента можно повернуть Черепашку на:
360 / 12 = 30
Поэтому для узора из 12 элементов часто используется поворот на 30 градусов.
Пример 1. Лучи по кругу
Начнём с простого узора: Черепашка рисует линию, возвращается назад и немного поворачивает.
import turtle
t = turtle.Turtle()
t.speed(0)
t.pensize(4)
t.color("blue")
for i in range(12):
t.forward(120)
t.backward(120)
t.left(30)
turtle.done()
Получается узор из 12 лучей. После каждого луча Черепашка поворачивает на 30 градусов.
Задание 1. Больше лучей
Измени программу так, чтобы получилось 18 лучей.
Условия:
- количество повторений — 18;
- длина каждого луча — 100 шагов;
- цвет линии — фиолетовый;
- толщина линии — 3;
- поворот после каждого луча — 20 градусов.
Подсказка: 360 / 18 = 20.
Новая идея: цикл внутри цикла
Иногда нужно повторять не одну команду, а целую фигуру. Например, чтобы сделать узор из квадратов, нужно много раз рисовать квадрат.
Для этого можно использовать цикл внутри другого цикла.
for i in range(12):
for j in range(4):
t.forward(80)
t.left(90)
t.left(30)
Внутренний цикл рисует квадрат, а внешний цикл повторяет этот квадрат 12 раз.
Пример 2. Цветок из квадратов
Нарисуем квадрат, повернём Черепашку, снова нарисуем квадрат — и так 12 раз.
import turtle
t = turtle.Turtle()
t.speed(0)
t.pensize(3)
t.color("green")
for i in range(12):
for j in range(4):
t.forward(80)
t.left(90)
t.left(30)
turtle.done()
В этом рисунке квадрат повторяется 12 раз, а каждый раз Черепашка поворачивает на 30 градусов.
Задание 2. Цветок из 18 квадратов
Измени программу так, чтобы узор состоял из 18 квадратов.
Условия:
- внешний цикл должен повторяться 18 раз;
- внутренний цикл должен рисовать квадрат;
- сторона квадрата — 70 шагов;
- поворот после каждого квадрата — 20 градусов;
- цвет линии — синий.
Подсказка: если элементов 18, то 360 / 18 = 20.
Пример 3. Узор из треугольников
Точно так же можно повторять не квадрат, а треугольник.
import turtle
t = turtle.Turtle()
t.speed(0)
t.pensize(3)
t.color("orange")
for i in range(10):
for j in range(3):
t.forward(100)
t.left(120)
t.left(36)
turtle.done()
Здесь Черепашка рисует 10 треугольников. После каждого треугольника она поворачивает на 36 градусов.
Задание 3. Свой узор из треугольников
Создай узор из 12 равносторонних треугольников.
Условия:
- внешний цикл повторяется 12 раз;
- внутренний цикл рисует треугольник;
- сторона треугольника — 90 шагов;
- поворот после каждого треугольника — 30 градусов;
- цвет линии — красный;
- толщина линии — 4.
Как менять вид узора?
Один и тот же код может давать очень разные рисунки. Достаточно менять несколько чисел.
range(12), range(18), range(36)t.forward(80), t.forward(120)t.left(30), t.left(20), t.left(10)t.color("purple"), t.pensize(5)Маленькое изменение числа может сильно изменить рисунок.
Пример 4. Геометрическая розетка
Теперь сделаем узор из длинных линий. Черепашка будет рисовать линию, поворачивать и снова рисовать линию.
import turtle
t = turtle.Turtle()
t.speed(0)
t.pensize(2)
t.color("purple")
for i in range(36):
t.forward(160)
t.backward(160)
t.left(10)
turtle.done()
Получилась розетка из 36 лучей. После каждого луча Черепашка поворачивает на 10 градусов.
Задание 4. Своя розетка
Создай свою геометрическую розетку.
Условия:
- используй цикл
for; - количество лучей — 24;
- длина луча — 130 шагов;
- после каждого луча поворот — 15 градусов;
- цвет и толщину линии выбери самостоятельно.
Подсказка: 360 / 24 = 15.
Пример 5. Цветной орнамент
Можно менять цвет прямо внутри цикла. Пока сделаем простой вариант: несколько лучей одного цвета, потом несколько лучей другого цвета.
import turtle
t = turtle.Turtle()
t.speed(0)
t.pensize(4)
for i in range(12):
t.color("red")
t.forward(100)
t.backward(100)
t.left(15)
t.color("blue")
t.forward(100)
t.backward(100)
t.left(15)
turtle.done()
Внутри одного повторения Черепашка рисует красный луч, потом синий луч.
Задание 5. Двухцветный орнамент
Создай двухцветный орнамент из лучей.
Условия:
- используй два разных цвета;
- длина каждого луча — 120 шагов;
- толщина линии — 4;
- узор должен сделать полный оборот;
- количество лучей и угол поворота подбери самостоятельно.
Типичные ошибки
- Забыли двоеточие после строки
for i in range(...):. - Не сделали отступы внутри цикла.
- Вложенный цикл написали без дополнительного отступа.
- Для узора из 12 элементов поставили поворот не 30 градусов, и рисунок не замкнулся.
- Слишком большая длина линии вывела часть рисунка за пределы окна.
- Забыли команду
t.speed(0), и большой узор рисуется очень долго.
Творческое задание
Создай свой орнамент или геометрическую эмблему.
Можно нарисовать:
- цветок из квадратов;
- розетку из лучей;
- узор из треугольников;
- эмблему класса;
- абстрактный геометрический знак.
Условия:
- используй хотя бы один цикл
for; - используй цвет и толщину линии;
- в рисунке должно быть не меньше 10 повторяющихся элементов;
- узор должен отличаться от примеров урока;
- подбери такие числа, чтобы рисунок выглядел аккуратно.
Проверь себя
- Что такое орнамент?
- Почему циклы удобно использовать для узоров?
- Сколько градусов в полном обороте?
- Какой поворот нужен для узора из 12 элементов?
- Что делает внутренний цикл в узоре из квадратов?
- Что делает внешний цикл в узоре из квадратов?
- Зачем в больших узорах использовать
t.speed(0)?
Итог урока
Сегодня мы научились создавать узоры и орнаменты с помощью циклов. Мы увидели, что одна простая фигура может превратиться в красивый рисунок, если повторять её с поворотом.
На следующем уроке нас ждёт мини-проект: мы соберём все изученные команды и создадим свой первый полноценный рисунок кодом.