Урок 4. Движение без следа
На этом уроке мы научимся перемещать Черепашку так, чтобы она не оставляла линию. Это поможет рисовать отдельные фигуры в разных местах экрана.
Главная идея урока
До этого Черепашка всё время рисовала линию, когда двигалась. Но иногда нужно просто перейти в другое место, не оставляя следа.
Для этого у Черепашки есть специальное “перо”: его можно поднять и опустить.
Новые команды
Сегодня нам понадобятся две новые команды.
t.penup()t.pendown()Важно понять
Команды penup() и pendown() не двигают Черепашку сами по себе. Они только меняют режим рисования.
Если перо поднято, движение есть, но линии нет. Если перо опущено, Черепашка снова оставляет след.
Пример 1. Две отдельные линии
Нарисуем одну линию, потом переместим Черепашку без следа и нарисуем вторую линию.
import turtle
t = turtle.Turtle()
t.pensize(5)
t.color("blue")
t.forward(120)
t.penup()
t.forward(80)
t.pendown()
t.forward(120)
turtle.done()
Между двумя синими линиями появился промежуток, потому что Черепашка прошла часть пути с поднятым пером.
Задание 1. Три отдельные линии
Измени программу так, чтобы Черепашка нарисовала три отдельные линии.
Условия:
- каждая линия должна быть длиной 100 шагов;
- между линиями должен быть пустой промежуток;
- толщина линии должна быть не меньше 5.
Подсказка: после каждой нарисованной линии нужно поднять перо, пройти немного вперёд и снова опустить перо.
Пример 2. Пунктирная линия
Пунктирная линия состоит из коротких отрезков и промежутков между ними. Черепашка рисует отрезок, потом идёт без следа, потом снова рисует.
import turtle
t = turtle.Turtle()
t.pensize(5)
t.color("purple")
t.forward(40)
t.penup()
t.forward(25)
t.pendown()
t.forward(40)
t.penup()
t.forward(25)
t.pendown()
t.forward(40)
t.penup()
t.forward(25)
t.pendown()
t.forward(40)
turtle.done()
Пока мы пишем повторяющиеся команды вручную. Позже мы научимся делать такие вещи короче с помощью цикла.
Задание 2. Свой пунктир
Нарисуй пунктирную линию из пяти отрезков.
Условия:
- каждый отрезок должен быть длиной 50 шагов;
- каждый промежуток должен быть длиной 20 шагов;
- цвет линии — зелёный;
- толщина линии — 6.
Не забудь: промежуток получается тогда, когда перо поднято.
Пример 3. Две фигуры отдельно
Теперь нарисуем два квадрата. Между ними не должно быть соединяющей линии.
import turtle
t = turtle.Turtle()
t.speed(0)
t.pensize(4)
t.color("blue")
t.forward(80)
t.left(90)
t.forward(80)
t.left(90)
t.forward(80)
t.left(90)
t.forward(80)
t.penup()
t.left(90)
t.forward(140)
t.pendown()
t.color("red")
t.forward(80)
t.left(90)
t.forward(80)
t.left(90)
t.forward(80)
t.left(90)
t.forward(80)
turtle.done()
Мы подняли перо перед переходом ко второму квадрату, поэтому между фигурами нет лишней линии.
Задание 3. Три отдельные фигуры
Нарисуй три отдельные фигуры:
- синий квадрат;
- красный квадрат;
- зелёную линию.
Между фигурами не должно быть соединяющих линий.
Подсказка: перед переходом к новой фигуре используй t.penup(), а перед рисованием — t.pendown().
Мини-разбор: почему появляется лишняя линия?
Лишняя линия появляется тогда, когда Черепашка переходит на новое место с опущенным пером.
Чтобы этого избежать, нужно действовать по схеме:
t.penup()t.forward(100)t.pendown()Пример 4. Разорванная рамка
Попробуем нарисовать рамку не сплошной линией, а отдельными отрезками.
import turtle
t = turtle.Turtle()
t.speed(0)
t.pensize(5)
t.color("orange")
t.forward(80)
t.penup()
t.forward(30)
t.pendown()
t.forward(80)
t.left(90)
t.forward(80)
t.penup()
t.forward(30)
t.pendown()
t.forward(80)
t.left(90)
t.forward(80)
turtle.done()
В этом примере видно, что разрывы можно делать не только на прямой линии, но и внутри более сложного рисунка.
Задание 4. Разорванная фигура
Нарисуй фигуру из отдельных отрезков.
Можно сделать:
- пунктирный квадрат;
- разорванную рамку;
- дорожку из коротких линий;
- геометрический знак из отдельных частей.
Условия:
- используй
t.penup()не меньше трёх раз; - используй
t.pendown()не меньше трёх раз; - рисунок должен состоять из отдельных частей.
Типичные ошибки
- Подняли перо командой
t.penup(), но забыли потом опустить его командойt.pendown(). - Ожидали, что
t.penup()сама передвинет Черепашку, но эта команда только поднимает перо. - Перешли к новой фигуре с опущенным пером, и появилась лишняя линия.
- Написали
penupбез скобок: нужноt.penup(). - Перепутали порядок: сначала надо поднять перо, потом двигаться.
Творческое задание
Создай рисунок из нескольких отдельных элементов.
Можно нарисовать:
- дорожку из пунктиров;
- несколько отдельных квадратов;
- созвездие из линий;
- робота из отдельных деталей;
- узор с разрывами.
Условия:
- используй команды
penup()иpendown(); - используй минимум 2 разных цвета;
- в рисунке должно быть не меньше трёх отдельных частей;
- между частями не должно быть случайных соединяющих линий.
Проверь себя
- Что делает команда
t.penup()? - Что делает команда
t.pendown()? - Почему между двумя фигурами может появиться лишняя линия?
- Как сделать промежуток в пунктирной линии?
- В каком порядке нужно действовать, чтобы перейти в новое место без следа?
Итог урока
Сегодня мы научились поднимать и опускать перо Черепашки. Теперь можно перемещаться по экрану без следа и создавать рисунки из отдельных элементов.
На следующем уроке мы познакомимся с координатами и научимся перемещать Черепашку в точную точку экрана.