Система координат в модуле turtle языка Python. Команда teleport
Словарь урока
из модуля turtle: |
|
---|---|
из языка Python: |
|
из пакета tkinter: |
|
Почти все программы, которые мы будем писать, будут начинаться с такого выражения на языке Python:
from turtle import *
Оно означает, что мы импортируем в нашу программу все команды из библиотеки turtle, которая представляет собой дополнение к языку Python. Без такого импорта, то есть в "чистом" Питоне, не получится программировать на языке черепашки (языке Logo).
В конце наших программ будет такая команда:
mainloop()
Она нужна для зависания окна с холстом. Иначе оно закроется, как только все остальные выражения будут выполнены, и мы не успеем оценить результат. Функция mainloop
не принадлежит ни языку Python, ни его библиотеки turtle. Она берется из библиотеки tkinter. Мы ее не импортируем сами, так как это делает сам библиотека turtle где-то в своем внутреннем коде. Модуль turtle использует возможности пакета tkinter, добавляя свои.
Все остальные команды, которые мы будем изучать, надо записывать между двумя выше упомянутыми строками кода.
Если запустить программу, состоящую только из инструкций импорта и зацикливания главного окна, на экране появится белый холст, в центре которого будет находиться наконечник стрелки, представляющий собой упрощенный вид черепахи. Большинство команды мы даем ей, хоть и не указываем это явно. Ее можно считать исполнителем наших программ. Ведь язык Лого и реализующая его в Питоне библиотека turtle предназначены в основном для обучения программированию. Поэтому здесь роль компьютера зачастую выполняет робот-черепашка. Если хочется увидеть ее образ, надо дать такую команду:
shape('turtle')
Мы как бы говорим: "исполнитель, прими форму черепахи". Вместо одиночных кавычек могут быть двойные: shape("turtle")
. В большинстве случаев это не важно. Главное помнить: все что в кавычках ‒ это строка. Строки ‒ это один из видов типов данных. Есть еще числа и многое другое.
Чтобы черепаха что-нибудь написала на холсте используется команда write
. В ее скобках пишется то, что мы хотим увидеть.
write('Hello')
Строка будет выведена примерно в центре холста. Если мы хотим выводить разные фразы в других местах, то нужна команда, которая переставит черепаху на новое место. Для этого требуются какие-то ориентиры на местности. Надо знать, где мы находимся и куда хотим попасть.
Часто в таких случаях используется декартова система координат. По умолчанию библиотека turtle языка Python сконфигурирована так, что нулевая точка (место, где ось x пересекается с осью y) находится в центре холста.
Чтобы убедиться в этом, заставим черепаху вывести координаты того места, где она стоит. Получить координаты можно с помощью команды position
. Далее полученные данные мы сразу передадим в функцию write
, которая отобразит их на холсте.
write(position())
Многие длинные слова-команды turtle имеют сокращенные варианты записи. Так вместо position
можно писать pos
. В примерах данного курса в основном будут использоваться полные версии команд, так как, зная значения слов, проще понять программу. О сокращениях по возможности будем упоминать.
Итак, какая инструкция в программе переставит черепаху в точку с заданными координатами? Это функция teleport
. В ее скобках передаются координаты. Первое число ‒ это координата x, второе ‒ y.
write(position()) teleport(200, 150) write(position()) teleport(-100, 50) write(position()) teleport(-250, -80) write(position()) teleport(125, -100) write(position())
Хорошо бы еще, чтобы черепаха оставляла свой отпечаток во всех посещенных местах, а не только в последнем, потому что запись координат на холсте достаточно длинная и непонятно, где находится сама точка с этими координатами. На помощь придет команда stamp
.
write(position()) stamp() teleport(200, 150) write(position()) stamp() teleport(-100, 50) write(position()) stamp() teleport(-250, -80) write(position()) stamp() teleport(125, -100) write(position()) stamp()
Когда вызывается функция teleport
черепаха сама никуда не идет. Она садится в телепорт и каким-то волшебным образом оказывается в новом месте пространства. Однако в точку с указанными координатами черепаха способна пройтись и сама. Хотя перемещается она не так быстро и по-умолчанию оставляет за собой след. Заставить черепаху идти может команда goto
, которой точно так же как и в случае teleport
передаются координаты.
write(position()) goto(200, 150) write(position()) goto(-100, 50) write(position()) goto(-250, -80) write(position()) goto(125, -100) write(position())
Если в процессе выполнения программы черепаха ушла с центра холста, а мы хотим ее туда вернуть без рисования линии, следует воспользоваться выражением teleport(0, 0)
. Также есть функция home()
, которая сделает это с оставлением линии, идущей от места нахождения черепахи к центру системы координат.
Задания для самостоятельной работы
- Используя команды
teleport
иgoto
, нарисуйте на холсте оси системы координат (пересекающиеся в центре горизонтальную и вертикальную линии). - Заставьте черепаху нарисовать любой треугольник.
- В библиотеке turtle есть функция
distance
, которая измеряет расстояние от того места, где сейчас находится черепаха, до точки, координаты которой передаются в эту функцию. Напишите программу, в которой сначала в центре холста выводится расстояние до какой-либо точки. Потом черепаха туда переходит командойgoto
. Затем там выводится расстояние до другой точки, и черепаха туда переходит. Там следует вывести расстояние до центра координат.