Черепаха и Чертёжник: рисование в КуМире
Кроме Робота, в КуМире есть рисующие исполнители. Знакомимся с Черепахой и Чертёжником.
Черепаха рисует, двигаясь вперёд и поворачиваясь на градусы; Чертёжник рисует отрезки по координатам (x, y). Оба оставляют след, когда «перо» опущено.
Черепаха: рисование относительными движениями
Черепаха ползёт по полю и тянет за собой след. Она не знает абсолютных координат — она думает «вперёд» и «повернуть». Это называется относительной (черепашьей) графикой.
| Команда | Что делает |
вперёд(n) | ползёт вперёд на n шагов |
назад(n) | ползёт назад на n шагов |
направо(a) | поворот направо на a градусов |
налево(a) | поворот налево на a градусов |
поднять хвост | перестать оставлять след |
опустить хвост | снова оставлять след |
По умолчанию хвост опущен, и Черепаха рисует. Чтобы переместиться без линии — поднимают хвост.
Черепаха рисует квадрат
Квадрат — это «вперёд и поворот на 90°», повторённые 4 раза:
использовать Черепаха
алг
нач
нц 4 раз
вперёд(100)
направо(90)
кц
кон
Поворот на 90° четыре раза замыкает фигуру. Заменив 90 на 120 и повторив 3 раза, получите равносторонний треугольник; на 60 при 6 повторах — шестиугольник. Общая формула: для правильного N-угольника угол поворота равен 360 / N.
Чертёжник: рисование по координатам
Чертёжник работает иначе — он мыслит координатами. У него есть «перо», которое можно поднять и опустить:
| Команда | Что делает |
опустить перо | дальнейшие перемещения рисуют линию |
поднять перо | перемещения без рисования |
сместиться в точку(x, y) | перейти в точку с координатами (x, y) |
сместиться на вектор(dx, dy) | сдвинуться на dx вправо и dy вверх |
Разница принципиальна: сместиться в точку(3, 4) переносит перо в конкретную точку (3, 4) независимо от того, где оно было; сместиться на вектор(3, 4) сдвигает относительно текущего положения.
Чертёжник рисует прямоугольник
использовать Чертёжник
алг
нач
сместиться в точку(0, 0)
опустить перо
сместиться на вектор(5, 0) | нижняя сторона
сместиться на вектор(0, 3) | правая сторона
сместиться на вектор(-5, 0) | верхняя сторона
сместиться на вектор(0, -3) | левая сторона
поднять перо
кон
Перо обошло прямоугольник 5×3 и вернулось в исходную точку.
Имитация Чертёжника на Python
Посчитаем координаты вершин прямоугольника, складывая векторы — так же, как это делает Чертёжник:
x, y = 0, 0
puti = [(5, 0), (0, 3), (-5, 0), (0, -3)]
print("старт:", (x, y))
for dx, dy in puti:
x += dx
y += dy
print("перо в точке:", (x, y))
Вывод:
старт: (0, 0) перо в точке: (5, 0) перо в точке: (5, 3) перо в точке: (0, 3) перо в точке: (0, 0)
Перо вернулось в (0, 0) — прямоугольник замкнулся, что и требовалось.
Попробуй сам
1) Заставьте Черепаху нарисовать равносторонний треугольник (подсказка: 3 повтора, поворот на 120°). 2) Заставьте Чертёжника нарисовать букву «Г» командами сместиться на вектор.
Частые ошибки
- Забыть
опустить перо/опустить хвост— фигура не нарисуется (перо поднято). - У Черепахи: неверный угол поворота — фигура не замкнётся (для N-угольника угол = 360/N).
- Перепутать «в точку» (абсолютно) и «на вектор» (относительно) у Чертёжника.
- Не подключить нужного исполнителя строкой
использовать.
Итог
- Черепаха рисует относительно:
вперёд,направо/налевона градусы, хвост вверх/вниз. - Чертёжник рисует по координатам:
сместиться в точкуина вектор, перо вверх/вниз. - «В точку» — абсолютно, «на вектор» — относительно текущего положения.
- Для правильного N-угольника Черепахи угол поворота равен 360/N.